各位大神: 纠结半天的问题了,求助:
框架是 ant-design 想实现的效果: 在 modal 有一个 form,想在填写 userNo 的时候,ajax 去查看是否有重复的工号 相关的 modal 部分:
function onValueChange(props, value) { let {user_no}=value; if (user_no) { props.OnValidateUserNo(user_no); } } export default Form.create({onValuesChange: onValueChange})(modal)
视图中,model 作为一个子组件放在 User 中:
const UserModalGen = () => <UserModal {...userModalProps} /> return ( <div className='content-inner'> <UserSearch {...userSearchProps} /> <UserList {...userListProps} /> <UserModalGen /> </div> )
OnValidateUserNo 方法就在 userModalProps 中传进去的. 具体:
const userModalProps = { item: modalType === 'create' ? {} : currentItem, type: modalType, visible: modalVisible, user_no_validating: user_no_validating, OnValidateUserNo({value}){ dispatch({ type: 'users_validate/validate_user_no', payload: {user_no: value} }) }, }
对应的:reducer 和 effects:
effects: { *validate_user_no({payload}, {select, call, put}){ yield put({type: 'showValidating'}) console.warn(payload) } }, reducers: { showValidating (state) { return {...state, user_no_validating: "validating"}; }, }
` 就在这个地方,一旦 return 出去新的 state,Modal 就会关掉重开一次,state 不变的情况下,modal 怎么会被重新渲染呢??,检查过 modal 的显示和隐藏 state 始终没变过.
求指教啊啊...
![]() | 1 peachplum OP 好吧 还是自己解决了 |
![]() | 2 henshang 2018-11-29 14:31:18 +08:00 你怎么解决的,我也碰到了这个问题 |