各位大神: 纠结半天的问题了,求助:
框架是 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 始终没变过.
求指教啊啊...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.