gpt4 book ai didi

javascript - React 的 Hook 调用无效?

转载 作者:行者123 更新时间:2023-11-28 03:12:06 26 4
gpt4 key购买 nike

我正在尝试更新组件的状态,但由于某种原因它一直显示 Uncaught Error: Invalid hook call. Hooks can only be called inside of the body of a function component.

我正在尝试有一个模态来打开 <div> 的 onclick 。该模式中有一个文本输入,它将更新状态(注释)。由于某种原因,它说无效的 Hook 调用 - 为什么会这样?

const openTestModal = () => {

let [notes, setNotes] = useState("");
let [openModal, setOpenModal] = useState(true);

let modalBody =
<div>
<TextInput
value={notes}
onChange={(value) => setNotes(value)}
/>
</div>

return (
<Modal
open={openModal}
onCancel={() => setOpenModal(false)}
onConfirm={() => console.log('works')}
body={modalBody}
/>
)
};

const TestHooks = () => {

return (
<div onClick={() => openTestModal()}>
Test
</div>
)
};

最佳答案

似乎您试图将 React 中的 testModal 渲染为事件,这根本不是一个可行的方法。相反,您必须将您的testModal渲染为组件,就像这样,因此单击测试div将打开您的模式:

const TestModal = () => {
const [notes, setNotes] = useState("");

const modalBody = (
<div>
<TextInput
value={notes}
onChange={(value) => setNotes(value)}
/>
</div>
)

return (
<Modal
open={openModal}
onCancel={() => setOpenModal(false)}
onConfirm={() => console.log('works')}
body={modalBody}
/>
)
};

const TestHooks = () => {
const [openModal, setOpenModal] = useState(false);
return (
<React.Fragment>
<TestModal openModal={openModal} setOpenModal={setOpenModal} />
<div onClick={() => setOpenModal(true)}>
Test
</div>
<React.Fragment>
)
};

希望有帮助:)

关于javascript - React 的 Hook 调用无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60010064/

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