javascript - 如何在reactjs中将布尔状态值false返回给父级
问题描述
父.tsx
const [modal, setModal] = useState(false);
const [detail, setDetail] = useState({});
<confirmation state={setModal(true)} data={detail} />
确认
return (
<SweetAlert
show={state}
success
title="Confirm"
onConfirm={() => {return !state}}
>
I did it!
</SweetAlert>
)
单击确认时如何将布尔状态返回为假值?因为我试图将值返回为 false,然后我尝试了这个onConfirm={() => {return !state}}
,但它不起作用。
解决方案
首先,始终以大写字母开头您的组件。其次,一种简单的方法是将确认函数作为道具传递,然后使用。所以像:
<Confirmation state={setModal(true)} data={detail} onConfirm={() => setModal(false)} />
然后在Confirmation
组件中使用该道具:
return (
<SweetAlert
show={state}
success
title="Confirm"
onConfirm={onConfirm}
>
I did it!
</SweetAlert>
)
这既简单又干净,并使您的Confirmation
组件更可重用,因为onConfirm
prop 可以是任何东西
推荐阅读
- c# - 如何运行 IIS Express 开发服务器,而不是 ASP.NET 开发服务器?
- assembly - Pep9 汇编代码 - 没有得到正确的输出
- r - 将多行扩展到一列?
- python - 使用用户定义的函数提取、修改和粘贴字符串
- swift - 使用 SDWebImage 将图像加载到 TableViewCell
- r - 从 R 中随机森林模型中的每棵树获取预测(在训练中使用训练函数,在预测中使用预测)
- c# - 如何使左右按钮起作用?Unity3D C#
- types - 为什么这个函数类型是“错误类型的”
- entity-framework - EF Core:计算实体的多级子级数量
- flutter - Dart - 相当于 Dart 的 C# Stream/MemoryStream 和 stream.WriteByte(..)