【发布时间】:2022-01-11 20:52:49
【问题描述】:
我在刷新页面时无法从 redux 获取数据
const [filters, setFilters] = useState<string[]>(props.filters);
useEffect(() => {
(() => {
if (!_.isEqual(filters, props.filters)) {
setFilters(props.filters);
}
})();
});
我的过滤器是未定义的,即使当我检查 redux devtools 时,过滤器中有数据。 我需要在我的前面触发一个事件来显示我的过滤器。
请问有人有意见吗?
编辑:
(如果我点击页面中的任何元素,它会加载我的过滤器)
如果我在刷新时添加 setTimeout,它可以工作,但我不确定使用 setTimeout 是否是一种解决方案
useEffect(() => {
setTimeout(() => {
setFilters(props.filters);
}, 1500);
}, []);
【问题讨论】:
-
据我了解,在页面刷新时,您的 redux 存储数据将设置初始值(如果您已分配)。您必须在应用程序加载之前持久化您的存储和检索。
-
喜欢将其存储在本地存储中吗?
-
如果您的数据不安全,您可以使用,否则您可以使用npmjs.com/package/redux-persist
标签: reactjs react-redux react-hooks refresh react-props