将方法传递给另一个 React 组件(不是子组件)

Pass a method to another React component (not child)

提问人:serhiyiv 提问时间:11/9/2023 更新时间:11/9/2023 访问量:34

问:

我有 2 个 DIV:“container-1”和“container-2” 我有 2 个组件:“按钮”和“板”

按钮必须呈现为“container-1” Board 必须呈现为“container-2”

Board 有一个方法 - doSomething()

如何从不是 Board 子级的按钮调用此方法? 我无法将doSomething()方法传递给按钮的道具。

谢谢。

<div id="container-1">

  <script type="text/babel">

    class Button extends React.Component
    {

        constructor(props) {
            super(props);
            this.handleClick = this.handleClick.bind(this);
          }

          handleClick() {
            this.props.methodToCall()
          }
          
      render() { 
        return <button type="button" className="btn" onClick={this.handleClick} > Click </button> ; }
    };


    ReactDOM.render(
      <Button key={2}/>,
      document.querySelector("#container-1")
    )

  </script>

</div>




<div id="container-2">
 
  <script type="text/babel">


    class Board extends React.Component
    {

        constructor(props) {
            super(props);
          }

        doSomething(){
          alert("Method executed")
        }
          

      render() { 
        return <div className="board">
                    
               </div>; }
    };



    ReactDOM.render(
      <Board key={1}/>,
      document.querySelector("#container-2")
    )

  
  </script>

</div>
javascript 反应js babeljs jsx

评论

0赞 ashish singh 11/9/2023
试着读一读这个 react.dev/learn/sharing-state-between-components 在 react 中,我们通常将像这样常见的东西放在一个共同的祖先中,或者你可以查看上下文 API 或 redux 来解决你的用例

答: 暂无答案