gpt4 book ai didi

javascript - React Native 接收新的 props,componentWillReceiveProps

转载 作者:行者123 更新时间:2023-11-27 23:10:53 25 4
gpt4 key购买 nike

我正在努力处理我的组件的一些更新。我知道我不应该在各州内设置 Prop 。但是,我必须这样做才能正确更新我的组件:

componentWillReceiveProps(nextProps) {
this.setState({
doctor: nextProps.data.name,
address: nextProps.data.address
})
}

有更好的方法吗?如果我这样做,这是最好的方法 ->

componentWillReceiveProps(nextProps) {
this.props.data.name = nextProps.data.name;
this.props.data.name = nextProps.data.address;
})
}

我试图使用shouldComponentUpdate:

shouldComponentUpdate: function(nextProps, nextState) {
return nextProps.id !== this.props.id;
}

但我的工作不太好。c

最佳答案

在您的评论中,您提到:

when I come back to the ListView the item I unfavourited still there and another item disappeared

这看起来像是完全不同领域的问题。我的猜测是您在列表中使用了错误的key。大概是一个索引。键对于您正在显示的项目应该始终是唯一的,而索引则不是(例如,第一个项目始终是索引 0,当您重新排列列表或删除第一个项目时,另一个项目将具有索引 0,而 React 不会那就好好工作吧。)Further explanation here .

关于“正确更新组件”:

  • 如果您传入新的 props,React 会自动使用新的 props 重新渲染。为此,您无需在 componentWillReceiveProps 中执行任何操作。
  • componentWillReceiveProps 用于根据旧的和新的 props 的比较来更新状态。 (例如,如果您想显示 Prop 中的点赞数是上升还是下降)
  • shouldComponentUpdate 是可选的。主要目的是提高性能,不对组件的工作方式进行任何功能更改:尽早告诉 React 组件没有更改。我建议只要您的组件尚未按预期工作,就不要包含 shouldComponentUpdate

关于javascript - React Native 接收新的 props,componentWillReceiveProps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36195690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com