求助: ant design (antd) 的 Modal 组件问题 ,reducers 返回了新的 state 状态后 modal 关掉又打开

2017-02-19 19:36:15 +08:00
 peachplum

各位大神: 纠结半天的问题了,求助:

框架是 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 始终没变过.

求指教啊啊...

15507 次点击
所在节点    前端开发
2 条回复
peachplum
2017-02-20 08:55:57 +08:00
好吧 还是自己解决了
henshang
2018-11-29 14:31:18 +08:00
你怎么解决的,我也碰到了这个问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341596

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX