gpt4 book ai didi

react-redux - InfiniteLoader 和 react-redux

转载 作者:行者123 更新时间:2023-12-04 08:47:56 25 4
gpt4 key购买 nike

来自 react-virtualised 的组件 InfiniteLoader要求作为属性 loadMoreRows 传递的函数具有类似 { startIndex: number, stopIndex: number }): Promise 的签名.
我在我的项目中使用 redux,所以 loadMoreRows是一个像这样的 redux Action 创建者:

const fetchEntities(start, stop) {
return fetch(`${myUrl}&start=${start}?stop=${stop}`)
}
const loadMoreRows = ({ startIndex, stopIndex }) => {
return (dispatch, getState) => {
return function(dispatch) {
return fetchEntities(startIndex, stopIndex).then(
items => dispatch(simpleAction(items)),
error => console.log(error)
)
}
}
}

之后,使用 react-redux 中的 connect 函数将此操作连接到包含 InfiniteLoader 的 react 组件。

所以我不确定,我怎样才能满足签名要求,因为 redux Action 创建者不返回任何值/

最佳答案

eyeinthebrick 是正确的。 Promise 不是必需的返回值。

当您“连接”一个 Redux action-creator 时,调用它(调度它)实际上会返回一个 Promise。例如,我认为你可以做更多这样的事情......

function fetchEntities (start, stop) {
return fetch(`${myUrl}&start=${start}?stop=${stop}`)
}

const loadMoreRows = ({ startIndex, stopIndex }) => {
return async (dispatch, getState) => {
try {
const items = await fetchEntities(startIndex, stopIndex)
await dispatch(simpleAction(items))
} catch (error) {
console.log(error)
}
}
}

此时 InfiniteLoader可以等待返回的 Redux promise 。

关于react-redux - InfiniteLoader 和 react-redux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38762914/

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