我有一个自己制造的组件,而componentWillRecieveProps根本没有被调用。
我认为问题是我将组件放在父类的条件中,因为当我删除条件时,通常会调用componentWillRecieveProps,请不要误解我的组件在两种情况下都被渲染,仅此而已该函数没有调用我所做的任何事情,值得注意的是componentDidUpdate与我可以正常工作。
以下代码适用于我在父组件中创建的条件:
{this.state.mode != LISTMODE ?
<UserDetails
userID = {this.state.choosenUserID}
mode = {this.state.mode}
changeUsersMode = {this.changeMode}/>
: null}
,以下代码用于componentWillRecieveProps函数:
componentWillReceiveProps(nextProps){
if(nextProps.mode == EDITMODE){
this.setState({
user:{
...this.state.user,
userName : "Tamer",
firstName : "Tamer",
lastName : "Mohamed",
registrationNumber : "1",
genderID : 0,
typeID : 1,
}
});
}
}
我希望有人能帮助我弄清楚发生了什么事。
答案 0 :(得分:0)
componentWillRecieveProps
仅在安装的组件接收到新的道具之前被调用。就是说,如果您要使用基于状态的条件从DOM中删除组件,并且如果该组件由于状态变化而再次呈现,则该组件是新呈现的(即已安装)。该组件尚未处于更新阶段。