在我的React Native项目中,我有一小堆具有ID的对象(总是少于20个)。我需要的对象的ID在导航路由器中找到,无法通过Redux选择器获得,我必须在组件级别获取它。所以我不得不做一点逻辑。以这种方式使用constructor
方法可以吗?
class DiscussionScreen extends React.Component {
constructor(props) {
super(props)
// Get discussion data using ID
const discussion = props.discussions.find(
item => item[ID] === props.navigation.getParam(ID)
)
// Pass to state
this.state = {discussion}
}
render() {
return (
<Discussion
discussion={this.state.discussion}
/>
)
}
}
答案 0 :(得分:1)
您是否需要discussion
中的state
?作为示例的替代方法,您可以执行以下操作:
class DiscussionScreen extends React.Component {
_getDiscussion = () => this.props.discussions.find(
item => item[ID] === this.props.navigation.getParam(ID)
)
render() {
return (
<Discussion
discussion={this._getDiscussion}
/>
)
}
}
答案 1 :(得分:0)
在构造函数中将其设置为空对象后,为什么不使用生命周期方法更改状态。 我认为,从长远来看,在构造函数中使用函数并不好。