在反应中,如果加载了this.props,我该怎么办?我尝试使用componentDidUpdate检查@props是否与prevProps不同,但我发现它们总是一样的: - /
当@ props.account.subbableProperties不为空时,我想调用下面的函数。
Object rowData[][] = { codes.toArray(), values.toArray() };
Object columnNames[] = codes.toArray();
当我把上面的函数放在componentDidMount中时,@ props.account.subbableProperties是空白的(还没有加载)所以我不能把它放在那里。
我尝试使用componentDidUpdate,但出于某种原因,此警报永远不会触发!
uiActions.curliesPropertyReplacement
element: @textarea
words: @props.account.subbableProperties
_this: @
replaceProperty: true
selectOnTop: true
maxCount: 3
callback: (e, value, strategy) =>
@setState text:@textarea.text()
我也在componentWillReceiveProps中尝试过:
componentDidUpdate (prevProps, prevState) ->
if !(_.isEqual(prevProps.account.subbableProperties, @props.account.subbableProperties))
alert("they do differ!")
似乎newProps和@props同时更新: 我做错了什么?
答案 0 :(得分:0)
componentDidUpdate ,此更改来自DOM,因此在组件重新呈现时会始终触发。
我对你所说的内容了解不多,因为我不知道this.props
即将到来的地方,但你是否尝过componentWillReceiveProps()
?这似乎更合适,因为您正在等待更新某些道具,而不是整个组件。
编辑:好的,我只是留言,看到你更新帖子。
所以你确实尝试了componentWillReceiveProps
并提供了更多信息。如果您正在等待更改某些道具或状态,则可以尝试componentWillUpdate
查看它们是否有所不同。如果您有新闻,我会稍后再回来查看:^)。