javascript - 如何在 react 中创建更多状态? react 状态的属性数量是否固定?

标签 javascript reactjs state

我知道我可以简单地一次性添加属性。 this.state={a:'1','b':2} 。但是,如果我们想向 state 对象添加额外的属性,而不仅仅是在 constructor 中,或者如果需要在条件下添加属性,该怎么办。

它是否只适用于固定数字或属性? (我知道 dictionaryarraysstate 的元素。)

constructor(){
   super();
   this.state = { item: 'first item' }
   this.state = { item2: 'second item' } // Or += append are not accepted. 
}

显然,React state 是一个 JS 对象 所以,this.state.item2= 'new item'; 有效。

Andy RayMark E 在下面的评论中回答。问题的另一部分:如何动态创建状态由 原因并将其标记为已回答

谢谢大家

最佳答案

可以拥有像这样的动态状态:

class DynamicStateBasedOnProps extends React.Component{
  constructor(props){
    super();
    this.state = { static: 'I am static' };
  }
  componentDidMount(){
    const stateBasedOnProps = Object.keys(this.props)
      .map(key => ({[key]: this.props[key]}));

    this.setState(dynamicState)
  }
  render() {
    return <div>
      {JSON.stringify(this.state)}
    </div>;
  }
}

关于javascript - 如何在 react 中创建更多状态? react 状态的属性数量是否固定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51343800/

相关文章:

javascript - 什么情况下mongo会生成唯一ID

javascript - Reduce 方法以计算具有特定键的对象值

javascript - 如何优化最大值算法

javascript - 如何在 React 中设置电话号码输入的样式?

python - React 和 Django 网站无法在 Heroku 上加载

javascript - 编辑功能不保存对 React 中状态数据的更改

javascript - 如何使用适用于以下场景的通用handleChange来更新以下状态:

javascript - 正则表达式用 HTML 标签替换字符

javascript - 我应该用 useCallback 或 useMemo 包装每个 prop,什么时候使用这个钩子(Hook)?

javascript - 如何添加第二个按钮而不导致堆栈崩溃?