gpt4 book ai didi

reactjs - Redux:状态调节 Action

转载 作者:行者123 更新时间:2023-12-03 13:35:16 25 4
gpt4 key购买 nike

据我了解, Action 创建者没有状态 View ,并且 reducer 不允许触发新 Action 。那么如何根据状态调整操作 - 是否需要在渲染函数中完成?

作为示例,我有一个列出项目集标题的组件。该数据存储在state.matches中。单击某个项目应该会在我的 Entries 组件中显示详细 View 。

目前,我有一个操作创建器,它下载条目并触发一个操作 addEntry ,这会导致 entries reducer 将数据添加到 state.entries 中的缓存中.

export function getEntryFromId(id) {
return function(dispatch) {
dispatch(lookupInit(id));

fetch('/register/id/' + id)
.then( res => res.json() )
.then( res => dispatch(addEntry(res[0])) ) // data returned as array of one element
.catch( err => dispatch({ type: ENTRY_LOOKUP_FAIL }) );
}
}

目前它总是下载新数据,因为它无法检查缓存。

另一种方法是将 id 作为 SHOW_THIS_NEXT 操作传递到条目端,此时,reducer 可以检查它是否在缓存中,如果没有则下载它。但 reducer 不允许触发操作,最终可能是forbidden .

如何将这个圆变成正方形。

最佳答案

我假设您正在使用Redux Thunk处理从 getEntryFromId 返回的 thunk?您返回的函数可以采用 getState 参数:

export function getEntryFromId(id) {
return function(dispatch, getState) {
const currentState = getState();
// do something with `currentState`,
// only dispatch if necessary
}
}

关于reactjs - Redux:状态调节 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com