【发布时间】:2021-08-23 00:27:17
【问题描述】:
环境
- Redux 工具包
- 反应
- 打字稿
- Grpahql
背景
我正在使用redux 和redux-toolkit 进行本地状态管理。
我阅读了redux-toolkit 文档。我发现我们可以在redux-toolkit 中使用createAsyncThunk() 函数调度thunk 动作。该函数自动调度pending、fulfilled、rejectedaction。
当我的异步工作失败时,使用action.error 作为SerializedError 类型发送rejected 操作。我们可以使用rejectWithValue() 函数自定义错误结果。像这样。
const fetchAdminPassword = createAsyncThunk('adminPassword/fetch', async (_, { rejectWithValue }) => {
try {
const result = await client.query<{adminPassword: string}>({ query: FETCH_ADMIN_PASSWORD });
const { data: { adminPassword } } = result;
return adminPassword;
} catch (err) {
rejectWithValue("Error!!");
}
});
builder.addCase(fetchAdminPassword.rejected, (state, action) => {
state.fetchError = action.payload;
state.fetchPending = false;
})
问题
action.payload 的类型是unknown。
如何将其更改为string?
【问题讨论】:
标签: typescript redux redux-toolkit