如何使用Redux Thunk应用构建器符号?

发布于 2025-01-21 21:25:39 字数 1329 浏览 2 评论 0 原文

我尝试使用构建器表示法:

,但遇到了这个错误:

预期的表达。

在这里,在 extrareducers 的最后一行中:},

import { createSlice, createAsyncThunk, PayloadAction } from '@reduxjs/toolkit'
import { AuthnRes } from '../tikexModule/Types'
import axios from 'axios'

const initialState: any = {
    resp: null,
}

const namespace = 'user'

export const getAuthnUser = createAsyncThunk(
    `${namespace}/getAuthnUser`,
    async () => {
        const { data } = await axios({
            method: 'get',
            url: 'me',
            headers: { crossDomain: true },
        })
        return data
    }
)

const userSlice = createSlice({
    name: 'authnUser',
    initialState,
    reducers: {},
    extraReducers: (builder) => {
        builder.addCase(getAuthnUser.fulfilled, (state, { payload }) => {
            state.resp = payload
        }),
    }, // <------- HERE
})

//export const { setAuthnRes } = userSlice.actions
export default userSlice.reducer

有什么问题?我不知道。

I try to use builder notation: https://redux-toolkit.js.org/api/createSlice#the-extrareducers-builder-callback-notation

but got this error:

Expression expected.

here, in last line in extraReducers: },

import { createSlice, createAsyncThunk, PayloadAction } from '@reduxjs/toolkit'
import { AuthnRes } from '../tikexModule/Types'
import axios from 'axios'

const initialState: any = {
    resp: null,
}

const namespace = 'user'

export const getAuthnUser = createAsyncThunk(
    `${namespace}/getAuthnUser`,
    async () => {
        const { data } = await axios({
            method: 'get',
            url: 'me',
            headers: { crossDomain: true },
        })
        return data
    }
)

const userSlice = createSlice({
    name: 'authnUser',
    initialState,
    reducers: {},
    extraReducers: (builder) => {
        builder.addCase(getAuthnUser.fulfilled, (state, { payload }) => {
            state.resp = payload
        }),
    }, // <------- HERE
})

//export const { setAuthnRes } = userSlice.actions
export default userSlice.reducer

What is wrong? I can not figure out.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

热情消退 2025-01-28 21:25:39

尝试在 addcase 之后删除逗号

const userSlice = createSlice({
    name: 'authnUser',
    initialState,
    reducers: {},
    extraReducers: (builder) => {
        builder.addCase(getAuthnUser.fulfilled, (state, { payload }) => {
            state.resp = payload
        }) // <------- HERE
    }, 
})

Try removing the comma after addCase

const userSlice = createSlice({
    name: 'authnUser',
    initialState,
    reducers: {},
    extraReducers: (builder) => {
        builder.addCase(getAuthnUser.fulfilled, (state, { payload }) => {
            state.resp = payload
        }) // <------- HERE
    }, 
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文