reactjs - React - TypeError:setActiveProject 不是函数
问题描述
我正在将状态的 setter 函数传递给组件,并且收到上述错误,说 setter 不是函数。
应用程序.js
const App = () => {
const [activeProject, setActiveProject] = useState();
return (
<div className="app-container">
<ProjectList
activeProject={activeProject}
setactiveProject={setActiveProject}
/>
</div>
);
};
项目列表.js
const ProjectList = ({ activeProject, setActiveProject }) => {
const [projectList, setprojectList] = useState([]);
useEffect(() => {
axios.get('http://localhost:1337/api/projects').then((allProjects) => {
setprojectList(allProjects.data);
});
}, []);
return (
<ThemeProvider theme={THEME}>
<div className="projectlist">
{projectList.map((project) => (
<Button
variant="outlined"
value={project.name}
key={project._id}
onClick={(e) => setActiveProject(e.target.value)}
>
{project.name}
</Button>
))}
</div>
</ThemeProvider>
);
};
解决方案
您正在传递道具setactiveProject
而不是setActiveProject
App.js
const App = () => {
const [activeProject, setActiveProject] = useState();
return (
<div className="app-container">
<ProjectList
activeProject={activeProject}
setactiveProject={setActiveProject} // <- here
/>
</div>
);
};
推荐阅读
- c++ - 用 XOR 乘以字节
- python - 使用用户输入获取来自类 python3 的信息
- scala - 如何将动态数据加载到 cassandra 表中?如何读取带有标题的csv文件?
- python - Numpy:基于单独的向量交换二维数组的值
- javascript - iframe 中的 PDF - 适用于 Firefox,但不适用于 OSX 上的 Chrome
- php - 用于更改 SEO 友好 URL 的 WordPress 查询字符串
- angular - 具有 3 种以上颜色的 Angular 主题
- silverstripe - Silverstripe 安装 - 友好的 URL 不起作用
- r - 使用 Dplyr 将两个 Dataframe 相乘并使用结果创建另一个
- xpath - XSLT 中的条件 For-Each