当前位置: 首页 > 面试题库 >

React Hook:将数据从子组件发送到父组件

阮俊弼
2023-03-14
问题内容

我正在寻找最简单的解决方案,以将数据从子组件传递给他的父组件。

我听说过使用上下文,传递槽属性或更新道具,但我不知道哪个是最佳解决方案。

我正在建立一个管理界面,其中的一个PageComponent包含一个ChildComponent以及一个可以在其中选择多行的表格。我想向我的父级PageComponent发送我在ChildComponent中选择的行数。

像这样:

PageComponent:

<div className="App">
  <EnhancedTable />         
  <h2>count 0</h2>
  (count should be updated from child)
</div>

ChildComponent:

 const EnhancedTable = () => {
     const [count, setCount] = useState(0);
     return (
       <button onClick={() => setCount(count + 1)}>
          Click me {count}
       </button>
     )
  };

我敢肯定这是一件很简单的事情,我不想为此使用redux。


问题答案:

您可以在父组件中创建一个方法,将其传递给子组件,并在每次子状态更改时从props调用它,并将状态保留在子组件中。

const EnhancedTable = ({ parentCallback }) => {

    const [count, setCount] = useState(0);



    return (

        <button onClick={() => {

            const newValue = count + 1;

            setCount(newValue);

            parentCallback(newValue);

        }}>

             Click me {count}

        </button>

    )

};



class PageComponent extends React.Component {

    callback = (count) => {

        // do something with value in parent component, like save to state

    }



    render() {

        return (

            <div className="App">

                <EnhancedTable parentCallback={this.callback} />

                <h2>count 0</h2>

                (count should be updated from child)

            </div>

        )

    }

}


 类似资料:
  • 我正在寻找将数据从子组件传递给其父组件的最简单解决方案。 我听说过使用上下文、传递属性或更新道具,但我不知道哪一个是最好的解决方案。 我正在构建一个管理界面,其中包含一个PageComponent,其中包含一个ChildComponent表,我可以在其中选择多行。我想把我在ChildComponent中选择的行数发送给我的父PageComponent。 诸如此类: 页面组件: ChildCompo

  • 问题内容: 在React中,我有类似的文件 parent.js 包含文本框和按钮 child.js 包含P标签 App.js 包含父组件和子组件 问题 将“父级”上的“文本框”值传递给子级,并将其显示在子级标记中。 完整代码 堆叠 问题答案: 更新了示例以将数据传递给子组件。 https://stackblitz.com/edit/react- trmj9i?file=child.js 在下面添加

  • 问题内容: 我正在尝试将数据从子组件发送到其父组件,如下所示: 这是子组件: 我需要的是由用户在父组件中获取选定的值。我收到此错误: 谁能帮我发现问题? PS子组件正在从json文件创建一个下拉列表,并且我需要该下拉列表来显示json数组的两个元素彼此相邻(例如:“ aaa,english”是首选!) 问题答案: 这应该工作。在发送回道具时,您将其作为对象发送,而不是作为值发送,或者将其用作父组件

  • 我有一个在父组件中生成的事件,子组件必须对此作出反应。我知道在中不建议使用这种方法,我必须执行emit,这非常糟糕。所以我的代码是这个。 正如您所看到的,在无限滚动上被触发,事件被发送到子组件搜索。不仅仅是搜索,因为它是根,所以它正在向每个人广播。 什么是更好的方法。我知道我应该使用道具,但我不知道在这种情况下我该怎么做。

  • 我在用vue-cli支架做网页包 我的Vue组件结构/传家宝目前看起来如下: 应用程序 在应用程序级别,我需要一个vuejs组件方法,该方法可以将子组件的所有数据聚合到一个JSON对象中,然后发送到服务器。 有没有办法访问子组件的数据?具体来说,多层深? 如果没有,传递oberservable数据/参数的最佳实践是什么,这样当子组件修改它时,我就可以访问新的值?我试图避免组件之间的硬依赖关系,所以

  • 问题内容: 我的jphp.php文件包含以下内容: 并且我的javascript文件包含以下内容: 我已经用php编码了数据数据..现在我想将这两个数据数组发送到javascript …我不知道要使用的正确命令。我对谷歌搜索感到困惑。 请帮忙 。 问题答案: 使用jQuery的简单特定示例: JavaScript页面: 在您的php中: