我想在简单的输入还原表单字段中进行简单的数据注入(inject)。 让我解释一下:
我有一个大表单,当用户在“LastName”输入中写入时,我只想将值作为“LastNameFather”注入(inject)到第二个字段。
在我看来非常简单,
我做了一个formvalueSelector,并获取第一个输入值。
const selecor = formValueSelector('MyForm')
const mapStateToProps = (state,props) => {
const name = selector(state,"nameOne")
return {
name : name
}}
我使用 componentWillReceiveProps 来处理写入并使用 props 更改来注入(inject)我的值。
componentWillReceiveProps = (props) => {
props.name != null ? props.change("name2",props.name) : null
}
现在,当我在第一个字段中写入时,会出现无限的重新渲染。如您所见,在更改第二个字段之前,我必须测试 props.name != null。
无论如何,我错过了什么?
谢谢
最佳答案
先生。 GreGGus,根据 React Js 官方文档“请注意,即使 props 没有更改,React 也可能会调用此方法(componentWillReceiveProps),因此如果只想处理更改,请务必比较当前值和下一个值。这可能会发生在以下情况:父组件会导致您的组件重新渲染。” 你可以尝试一下。
关于javascript - 在输入字段的监听器上使用 'change',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44631970/