javascript - 在 React 的单个组件中发送多个道具时遇到问题
问题描述
这是我的 app.js:
const App = () => {
const [ loading, setLoading ] = useState(false);
const [ filter, setFilter ] = useState(false);
return (
<div className="App">
<Loader show={loading} />
<Navbar active={filter} />
<Main setLoading={setLoading} setFilter={setFilter} />
</div>
);
}
export default App;
这是我的 Navbar.js 组件:
const Navbar = ({active}) => {
return (
<div className={"filter-options" + (active ? " active" : "")}>
<div className="filter-close">
<i className="fa fa-close fa-2x" aria-hidden="true"></i>
</div>
</div>
);
}
导出默认导航栏;
这是我的 Main.js 组件:
const Main = ({ setLoading, setFilter}) => {
const [ images, setImages ] = useState([]);
useEffect(() => {
const getFeed = async () => {
setLoading(true);
const response = await fetch(`https://localhost/api/feed`);
const data = await response.json();
const results = data.data.results;
setImages(results);
setLoading(false);
}
getFeed();
}, []);
const showFilters = () => {
setFilter(prevValue => !prevValue);
}
return (
<Grid container spacing={2} className="media">
{
images.map((image, index) => {
return (
<Grid container item xs={6} sm={3} md={2} onClick={showFilters}>
<ImageItem key={ `image_${ index }` } details={ image } />
</Grid>
);
})
}
</Grid>
);
}
export default Main;
问题是setFilter
当用户单击元素时,传递给主组件的值似乎没有设置正确。每次单击时,它应该在真/假之间变化。
关于我可能错过的任何想法?
解决方案
推荐阅读
- unit-testing - Bitbucket webhook 和 Jenkins,显示构建结果
- javascript - 尝试修复 React Native 中的暗模式,适用于 Android
- angular - 在 Angular 应用程序中使用 keycloak 检查权限
- android - 无法在旋转更改中保存edittext值
- javascript - 这个赋值在反应组件的这个渲染方法中意味着什么
- r - 跨不同长度的数据帧 R/dplyr/stringr 对部分字符串匹配进行条件突变
- python - 在股票收盘价数据框中找到更高的顶部和更低的底部
- java - 我应该如何定义一个返回数组的集合方法?
- postgresql - 使用 Postgres 从文本中提取关键字
- java - 显示日期/时间剩余当前时间