reactjs - 从 IonModal 更新主页组件的状态
问题描述
TLDR:我正在从应该显示在主页上的 Ionic 模态向 Redux 存储添加数据,但是当模态关闭时,主页不会更新以显示新数据。
我有一个 IonModal 用于从 API 获取数据。然后,我将响应数据添加到我的 Redux 存储中的列表中,该列表显示在主页上。
这是主页反应代码:
export default function Home(): ReactElement {
const quotes = useSelector((state: any) => state.quotes);
const [data, setData] = useState([]);
useEffect(() => {
setData(quotes);
}, [quotes]);
return (
<IonPage>
<IonContent fullscreen>
<Modal />
{data.map((q: any) => {
return <p key={q?._id}>{q?.content}</p>;
})}
</IonContent>
</IonPage>
);
}
这是模态的 React 代码:
export default function Modal(): ReactElement {
const [showModal, setShowModal] = useState(false);
const dispatch = useDispatch();
const getData = async () => {
const quote = await axios.get("https://api.quotable.io/random");
dispatch(addQuote(quote.data));
setShowModal(false);
};
return (
<>
<IonButton onClick={() => setShowModal(true)}>Open Modal</IonButton>
<IonModal isOpen={showModal} onDidDismiss={() => setShowModal(false)}>
<IonButton onClick={() => getData()}>Get Data</IonButton>
</IonModal>
</>
);
}
当该getData()
函数在模式中运行时,我希望模式关闭并且数据显示在主页上,但目前,即使数据在 redux store 中,主页也不会更新。我认为这与更新 redux 状态时未安装的组件有关。如果是这种情况,我将如何在安装组件时对其进行更新?
我很困惑,所以任何帮助或建议将不胜感激,干杯。
解决方案
我在 ionic 论坛中回答... 将状态更改从模态移出并移入父组件。
向模态添加回调以处理按钮单击...</p>
推荐阅读
- arrays - undefined 不是函数 data[index].push
- c - 如何理解指针数组的类型转换?
- openlayers - OpenLayers 可以仅更改倍数而不是中间图像的大小(使用 ol.source.Zoomify 的参数“大小”)吗?
- json - 使用 JSON 创建节点之间的链接/关系时未定义变量
- xslt-1.0 - 如何修复“字符串未被识别为有效的日期时间。” BizTalk 测试地图中的错误?
- python - 如何使用 SQLalchemy 将 CSV 加载到数据库中?
- sql - 如何在更高级别聚合加权平均值字段?
- python - 触摸屏滚动 Tkinter Python
- java - 无法使用 Apache cxf soap 通过代理隧道
- angular - 如何在 html 属性中使用 Angular 指令