在redux中执行异步操作后的setState

时间:2018-01-21 16:28:56

标签: javascript reactjs ecmascript-6

我应该使用哪种生命周期方法来设置表单中的现有值?我无法做<input value={this.props.title} />,因为我想将输入作为受控组件。

我可以在异步方法之后做一个承诺,但这会是反模式吗?

componentDidMount() {
  this.props.fetchItem(this.itemId)
  .then(v=>{this.setState({title: v.title})})
}

1 个答案:

答案 0 :(得分:0)

您可以使用componentWillReceiveProps()方法将props值设置为state。

像这样。

componentWillReceiveProps(nextProps){
 // store your props value to state here
if(nextProps.formData !== undefined){
  this.setState({ formData: nextProps.formData });
  }

}

在输入更改方法

上更新该状态值
handleChange = (name, value) => {
  // update state here
  this.setState({ [name]: value });
  }