我正在尝试将值传递给子组件,但该值不会随着父组件值的更改而更新。这是我的工作
子组件:
element = driver.find_element_by_xpath('//table[@id="caccp1_content_clblContent1"]/tbody/tr[2]/td[2]')
print(driver.execute_script('return arguments[0].innerHTML', element))
父js文件
class Test extends Component {
constructor(props) {
super(props)
this.state = {
data: this.props.data,
}
}
render() {
return(
<div>{this.state.data}</div>
)
}
}
export default Test;
该值在父组件上得到更新,但是,子组件未获得更新后的值。我想念什么?
答案 0 :(得分:2)
constructor()
在开始时仅运行一次。父项更新后,它会向props
发送新的Test
,但是在第一次渲染组件后不会将state.data
更改为props.data
您正在打印this.state
变量,该变量未更新。相反,您应该从this.props
render(){
return(
<div>{this.props.data}</div>
)
}
如果您想检测新道具,可以使用compnentWillRecieveProps()
componentWillRecieveProps(nextProps){
this.setState({data:nextProps.data})
}
答案 1 :(得分:0)
state
。渲染this.props.data
应该足够了,因为那是您从父级传递给子级的内容。