所以我在一个组件中更新了我的状态,然后将新的道具传递给孩子,但孩子没有正确更新,输入的 defaultValue 没有改变。起初我认为这可能是因为我正在使用 this.props 所以开始使用 this.states 并首先在那里应用新的道具,但似乎没有用。
父组件
this.state.newDetails == null ? '' :
<NewDetailsView details={this.state.newDetails} />
子组件:
import React, { Component } from 'react';
class NewDetailsView extends Component {
constructor(props) {
super(props);
this.state = {
details: (this.props.details!= null) ? this.props.details: null
}
}
componentWillReceiveProps(nextProps) {
this.setState({ details: nextProps });
this.forceUpdate();
}
render() {
return (
<div>
<input type="text" defaultValue={this.state.details.id} />
</div>
);
}
}
export default NewDetailsView ;
解决方案代码:
待办的...