【发布时间】:2021-06-04 20:09:00
【问题描述】:
我想在 useState 钩子中传递一个布尔值,该钩子在两个函数之间单击时打开和关闭模式。但是,我不断收到此错误消息:Cannot destructure property 'setOpenModal' of 'props' as it is undefined.
Main.js
import React, { useState, useEffect } from "react";
import * as Materials from "../components/Materials"; // <- Material.js
const Main = () => {
const [openModal, setOpenModal] = useState(false); //<- Opens (True) and Closes (False) Modal
const { MaterialContainer } = Materials.MaterialTable(); // <-Calling Function Under MaterialTable
return (
<MaterialContainer
openModal={openModal}
setOpenModal={setOpenModal}
/>
// This is how I am passing in Open/Close useState.
}
Material.js
export const MaterialTable = (props) => {
const { openModal, setOpenModal } = props; // <- Pointed in Error Message.
const openMaterialModal = (item) => {
console.log("Button Clicked");
setOpenModal(true); // <- Where I am passing in a true statement.
};
const MaterialContainer = () => (
<>
<Table>Stuff</Table>
</>
);
return {
MaterialContainer
}
}
提前致谢。
【问题讨论】:
-
您能否为
Main.js提供更全面的代码示例?不清楚你是否有一个正确的 React 组件。 -
@DrewReese 当然!
-
这看起来很奇怪。除了 MaterialTable 的内部,您无法到达 MaterialContainer
标签: reactjs function react-hooks undefined use-state