React-管理UI状态

时间:2018-08-24 06:11:49

标签: javascript reactjs user-interface

我正在创建一个UI组件,该组件应该能够维护其自己的UI状态,但是可以通过prop从父组件接收数据。这是常见的情况,那么什么被认为是最佳做法?

示例:目录树组件。该组件通过prop从父组件接收其结构和文本内容。但是,树组件应自行管理节点的可见性状态(关闭/扩展)。我应该复制道具以说明接收/更新的状态,并在其中添加可见性数据吗?我印象深刻的是,从道具初始化状​​态是一种不好的做法。

1 个答案:

答案 0 :(得分:0)

也许是这样吗?

https://gist.github.com/acro5piano/4945264cfb0a83b681822332ef351ece

在这种情况下,您无需将道具复制到本地状态:)

如果您必须修改或转换道具数据,请尝试使用计算属性:

get someValueFromProps() {
  return this.props.value.replace('foo', 'bar')
}

局部状态越少,组件越好,因为状态会产生错误,除非程序员注意它们。