将支柱发送给子组件

时间:2018-05-29 01:21:13

标签: reactjs function parent-child react-props

我正在尝试在另一个子组件执行某些操作时更改component的{​​{1}}。

我在这里有一个父类:

child component

来自父函数的函数class Parent extends Component { constructor(){ super(); this.state={visible:true}; } handleClick = () => { this.setState({ visible: !this.state.visible }); }; render() { return ( <div> <Child1 handleClick={this.handleClick} /> <Child2 visible={this.state.visible} /> </div> ); } } class Child1 extends Component { handleClick = () => { console.log(this.props); this.props.handleClick(); }; render() { return ( <div> <button onClick={this.handleClick}>Click</button> </div> ); } } class Child2 extends Component { render() { return <div>//some codes</div>; } } 可以工作一次。

然后它不断给我错误handleClick不是函数。并且第二次没有道具。

谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:1)

我做了这个并且有效:

render() {
  return (
    <div>
      <Child1 handleClick={this.handleClick} />
      { this.state.visible && <Child2 />}
    </div>
  );
}

供参考:https://codesandbox.io/s/5zl8q7l744

希望它有所帮助。