用装饰行为来消除掉 pre-hooks 中重复的状态判断