gpt4 book ai didi

reactjs - 如何在React中使用useState Hook调用Parent函数?

转载 作者:行者123 更新时间:2023-12-02 15:25:27 26 4
gpt4 key购买 nike

理想的结果是在单击列表中的项目时显示字符串。

这是根组件。

const App = () => {
const [click, setClick] = useState(null);
const handleClick = name => {
setClick(name);
};
return (
<div>
<Parent handleClick={handleClick} />
{click && <p>{click} is clicked.</p>}
</div>
);
};

和父组件。

const Parent = ({ handleClick }) => (
<div>
<Child
name="First Item"
handleClick={handleClick("First Item is Clicked!")}
/>
<Child
name="Second Item"
handleClick={handleClick("Second Item is Clicked!")}
/>
<Child
name="Third Item"
handleClick={handleClick("Third Item is Clicked!")}
/>
</div>
);

和子组件。

const Child = ({ name, handleClick }) => <li onClick={handleClick}>{name}</li>;

此外,代码沙箱 link .

我只是想知道为什么结果永远不会因点击而改变。

最佳答案

问题是您没有将函数传递给handleClick,而是传递来自父级的评估值。您的代码必须是

import React from "react";
import Child from "./Child";

const Parent = ({ handleClick }) => (
<div>
<Child
name="First Item"
handleClick={() => handleClick("First Item is Clicked!")}
/>
<Child
name="Second Item"
handleClick={() => handleClick("Second Item is Clicked!")}
/>
<Child
name="Third Item"
handleClick={() => handleClick("Third Item is Clicked!")}
/>
</div>
);

export default Parent;

Working demo

关于reactjs - 如何在React中使用useState Hook调用Parent函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57106772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com