react生命周期之中自带了两种方法componentDidMount()和componentWillReceiveProps(nextProps)
其中第一种方法componentDidMount()是页面整体加载完成之后就会执行的函数,适合用于一次初始赋值且不方便置于state中的参数。比如,今天实习用到一个需求就是用到单选框,将其默认初始值赋值1,在state中存值为undefined。就需要在componentDidMount()中获取radio的值然后将其set进子组件的state中,而且在初次使用的时候需要选择,将radio的值赋为1。
至于为什么要赋值为1,这就关系到我们下面要讲的函数componentWillReceiveProps(nextProps)了,先贴一段代码
componentWillReceiveProps(nextProps) {
if(nextProps.radioValue!=this.props.radioValue){
debugger
this.setState({
radioValue:nextProps.radioValue
})
}
}
componentWillReceiveProps(nextProps)函数是父组件的值发生变化的时候使用的,在这个需求中,如果初始值将radio赋值为1,如果使用者选择了1,那么就没有变化,初始值便不能使用。所以默认初始值应该不存在才对。