【发布时间】:2016-06-21 09:06:50
【问题描述】:
我知道在componentDidMount 上设置状态是一种反模式,并且应该在componentWillMount 上设置一个状态,但假设我想将li 标签数量的长度设置为一个状态。在这种情况下,我无法在componentWillMount 上设置状态,因为在该阶段可能没有安装li 标签。那么,这里最好的选择应该是什么?如果我将状态设置为componentDidMount 会好吗?
【问题讨论】:
-
您是否根据某些道具(或数据)呈现
li标签?你能用data.length吗? -
简单地说。假设我有 4 个
li标签,我想获取它们的数量,以便我的maxNumber状态应该是 4。但是,我确实根据一些道具(或数据)渲染了li标签。跨度> -
然后使用
getInitialState()中的props数据计算最大值,并将其放入状态。似乎不需要等待组件被挂载。 -
异步数据呢?
-
不要将派生值设置为状态。在你的渲染函数中使用
const numLi = liList.length
标签: reactjs