reactjs - 如何将数据从孩子传递给父母?当父类基于类而子类基于功能时
问题描述
我想将诸如数组、字符串、数字之类的数据从 Child1(Child) 组件传递到 App(Parent) 组件)。
有一个基于类的父母,而孩子是基于功能的。
家长:
import React, { Component } from "react";
import "./App.css";
import Child1 from "./Child1/Child1";
class App extends Component {
state = { message: "" };
callbackFunction = (event) => {
this.setState({
message: event.target.value
});
}
render() {
return (
<div className="App">
<Child1 />
</div>
);
}
}
export default App;
孩子
import React from 'react'
const Child1 = (props) => {
return (
<div>
</div>
);
}
export default Child1;
解决方案
如果您想在单击子组件中的按钮时向父组件发送一些数据,您可以这样做:
import React from 'react'
const Child1 = React.memo((props) => {
return (
<div>
<button onClick={() => {props.clicked('some data')}} type="button">Click me to send data<button>
</div>
);
})
export default Child1;
现在您可以为父组件中的 clicked 属性分配一个函数,并在单击子组件中的按钮时调用该函数:
class App extends Component {
state = { message: "" };
callbackFunction = (event) => {
this.setState({
message: event.target.value
});
}
clicked = (data) => { // this func. will be executed
console.log(data);
}
render() {
return (
<div className="App">
<Child1 clicked={this.clicked}/>
</div>
);
}
}
推荐阅读
- python - Python Tkinter 单击单选按钮会创建多个按钮
- python-3.6 - 张量流 2 中的 InvalidArgumentError 是什么意思?
- c# - 我可以添加列表吗
在数据库中?代码优先 Visual Studio - android - 最后一个扩展函数没有被调用
- python - TypeError:“存储”对象不可迭代
- java - 在Java中生成随机数数组
- forms - 在 ReactNative 中构建表单时,Formik 或 React Hook Form 哪个更好?
- java - 如何在java中正确使用函数
- pandas - Marge 后续行 pandas
- javascript - 通配符 Firebase 查询