javascript - 渲染完成后更新 React 状态

标签 javascript reactjs components state

我正在学习 React 的生命周期方法,我想知道如何最好地解决这种情况:

我有一个组件可以获取有关某人爱好的信息

  componentWillMount() {
    this.props.fetchHobbies(this.props.params.id);
  }

数据被发送到一个reducer,该reducer被映射为组件底部的一个prop

function mapStateToProps(state) {
  return { 
    hobbies:state.hobbies.user
  };
}

我有一个名为 twitterbootstrap 的组件,它依赖于我的组件的状态来查看选择了哪些行。

const selectRowProp = {
  mode: 'radio',
  clickToSelect: true,
  bgColor: "rgba(139, 195, 74, 0.71)",
  selected: this.state.selected,
};

这是我的问题。我想访问 this.props.hobbies.selected

--更新我正在使用 componentWillRecieveProps,因为它有一个 setState 选项。

componentWillReceiveProps(nextProps){
    this.setState({selected:next.props.hobbies })
} 

我想使用 this.props.hobbies.selected 作为下一个要接收的 Prop 。我将如何合并它?

最佳答案

nextProps 是第一次渲染后传递的 props 对象。函数 componentWillReceiveProps 中没有任何名为 next.props 的内容。你可以做类似的事情。

componentWillReceiveProps(nextProps){
    this.setState({selected:nextProps.hobbies })
} 

关于javascript - 渲染完成后更新 React 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39135607/

相关文章:

javascript - contextMenu的GoJS makeSvg

regex - 未封闭的正则表达式

java - 按名称获取组件不支持所有操作?

angular - 如何在 Angular 中刷新组件

javascript - jQuery自动播放视频序列不起作用

javascript - 分机 JS 4 : Convert JSON object to another JSON object using JavaScript

javascript - 当我尝试将 vis.js 与 Svelte 结合使用时,出现意外标记 'export'

Reactjs 如何在非事件路径上切换类?

delphi - Lazarus 中字符串的组件

javascript - 使用 JavaScript 提交表单