我想更新' change_color'在第二个类中,当值发生更改时自动在第一个类中呈现它。 假设,'第二'组件作为“第一”的孩子。成分
解决了它。代码已编辑,这就是答案。
class First extends Component {
constructor() {
super();
this.state = {
change_color: false
}
this.handleChange = this.handleChange.bind(this);
}
handleChange() {
this.setState({
change_color: true
})
}
render() {
console.log(this.state.change_color);
return(<div><Second colorChange={this.handleChange} /></div>)
}
}
class Second extends Component {
constructor() {
super();
}
render() {
return(<div><button onClick={this.props.colorChange} /></div>)
}
}
答案 0 :(得分:0)
你需要做的就是提升状态。创建一个具有颜色和更改颜色功能的状态的新组件。然后传递给第一个和第二个组件相应的属性作为道具,并在它们内部调用函数来改变颜色。这有道理吗?
答案 1 :(得分:0)
也许你可以尝试这个,只需创建一个容器组件,并将你想要更改的值设置为容器组件的状态,添加一个方法来更改状态值,然后,你可以使用&#34;这个.props.handleColorChange&#34;调用子组件中父组件的方法。
class Container extends Component {
constructor() {
super();
this.state = {
change_color: false
}
}
handleColorChange= () => {
const {change_color} = this.state;
this.setState = {
change_color: !change_color
}
}
render() {
const {change_color} = this.state,
{handleColorChange} = this;
return (
<div>
<First
color={change_color}
handleColorChange={handleColorChange}
/>
<Second
color={change_color}
handleColorChange={handleColorChange}
/>
</div>
);
}
}
class First extends Component {
constructor() {
super();
}
render() {
const {color} = this.props;
return(
<span>now, the color is {color}</span>
)
}
}
class Second extends Component {
constructor() {
super();
}
const {handleColorChange} = this.props;
return(
<button onClick={handleColorChange}>click to change color</button>
)
}
&#13;