我尝试使用@reduxjs/toolkit在react native中实现可滚动分页,最初,我在useEffect中调用一个API,它正在调度一组项目,然后在滚动时,我调用一个函数'loadMoreItem'来调度一组新的项目,同时调度fetchLoadContent,我在调用API时传递了一组参数,但它没有接收我的参数。我已经通过consoling仔细检查了传递的参数是否正确显示。但它没有在fetchLoadContent函数中接收。相反,它说
{“abort”:[函数abort],“dispatch”:【函数调度】,“extra”:undefined,“fulfillWithValue”:[Function fulfillWithValue],“getState”:[Function getState],“rejectWithValue”:[Function rejectWithValue],“requestId”:“W2 M9 L4 Q43 YiNsziN 6ptm-",“信号”:{}}
//component
const loadMoreItem = () => {
dispatch(fetchLoadContent(
id,
keys.PKM,
keys.SKM
keys.BelongsToLanguage,
keys.ContentCreatedAt
console.log(id, keys.PKM, keys.SKM,
keys.BelongsToLanguage, keys.ContentCreatedAt)
//By consoling here, Datas are displaying properly
))
}
//Slice reducer
export const fetchLoadContent = createAsyncThunk('loadContent', async (id, PKM, SKM, BelongsToLanguage, ContentCreatedAt) => {
console.log(id,PKM,SKM, BelongsToLanguage,ContentCreatedAt )// here, It was not receiving
const res = await fetch(URL + `languages/${id}/recent-content?PKM=${PKM}&SKM=${SKM}&BelongsToLanguage=${BelongsToLanguage}&ContentCreatedAt=${ContentCreatedAt}`,
{
headers: {
'x-api-key': 'xxxxxxxx'
},
})
const results = await res.json();
return results;
})
1条答案
按热度按时间b09cbbtk1#
请看一下RTK的
createAsyncThunk
的documentation。传递的函数与预期的签名不匹配。所有当前参数(
id
、PKM
、SKM
等)都应压缩为单个arg
对象,第二个参数应为thunkAPI
对象,该对象由RTK自动传递。此外,如果您正在执行大量API工作,请考虑使用RTK Query。它内置于RTK中,使管理大型API变得更加容易。
根据您的请求,这里有一个async thunk定义的示例:
我不知道如果你在使用官方文档时遇到麻烦,这会有多大价值,但希望它能有所帮助。RTK有很多工作要做(但它有很好的文档),我建议您在尝试任何复杂的实现之前先熟悉一下文档。