javascript - React - 如何使用子组件,使用函数结构(不是类)设置我的父状态
问题描述
我正在尝试通过将函数“setName”传递给子组件来使用子组件中的按钮更改父组件的状态。我阅读了很多示例,但它们似乎都使用类,我试图在其中使用函数,因为钩子上的 React 文档似乎在类上提升函数。
在我的父母中,我有
let [Name, setName] = useState("John Doe");
我在 return 语句中使用 JSX 传递 setName 方法:
<Child childSetName=({setName})/>
在我的子组件中,我有
export const Child = ({childSetName}) => {
return(
<a onDoubleClick={()=>{childSetName("Mary Ann")}}>
Click me
</a>
)}
我得到一个 typeError: childSetNameis not a function。
我也读过这个流行的问题,但它使用类,而不是 React 文档中所有钩子示例的函数。
如何使用子组件设置我的父状态,两者都保留它们的功能结构而不是类。
解决方案
我认为你在这里有错误的语法
<Child childSetName=({setName})/>
应该这样改
<Child childSetName={setName}/>
和
export const Child = ({childSetName}) => {
return(
<a onClick={()=>{childSetName("Mary Ann")}}>
Click me
</a>
)}
推荐阅读
- python - python:范围类中的多个构造函数(__init__签名),怎么可能?
- css - 如何创建像 web what´s app 附加菜单这样的动画?
- c# - 我可以使用什么模式来编写 CRUD 功能?
- go - Godoc:将文档限制为项目(不是依赖项)
- angular - 带有 NGFOR 的材料扩展面板似乎锁定了我的 js 资源
- laravel - 使用 btable 将事件传输到父组件
- conda - 如何通过 Conda 安装 hla-la 包?
- javascript - 如何在 console.log 中用引号显示字符串输出?
- c++ - C++ SQLite3 Bind-Blob 未按预期工作
- python - 在 psycopg2 中设置 callproc 方法的限制