簡體   English   中英

Typescript 和 redux 工具包

[英]Typescript and redux toolkit

如何在 Initialvalue 中創建一個 Recipe 類型的數組,以及如何將 Payloadaction 設置為 object 類型? 不幸的是,我是 typescript 初學者。

import { createSlice, PayloadAction } from "@reduxjs/toolkit";

type Recipe = {
    title: string, 

}

const INITIAL_VALUE = {
    recipes: []
}


const recipeSlice = createSlice({
    name: 'recipe',
    initialState: INITIAL_VALUE,
    reducers: {
        addRecipe(state, action: PayloadAction<{}>) {
            state.recipes.push(action.payload)
        }
    }
    
})

[]將是一個never數組,因為沒有關於數組中元素類型的任何信息。 您可以做的最簡單的事情是將[]斷言為Recipe[]

const INITIAL_VALUE = {
    recipes: [] as Recipe[]
}


const recipeSlice = createSlice({
    name: 'recipe',
    initialState: INITIAL_VALUE,
    reducers: {
        addRecipe(state, action: PayloadAction<Recipe>) {
            state.recipes.push(action.payload)
        }
    }
    
})

游樂場鏈接

您還可以為INITIAL_VALUE提供顯式類型注釋,但這需要您為所有屬性執行此操作,並且需要您在兩個位置定義屬性:

const INITIAL_VALUE: {
    recipes: Recipe[]
} = {
    recipes: []
}

游樂場鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM