メインコンテンツにスキップ

その他のエクスポート

Redux Toolkitは、内部ユーティリティの一部をエクスポートし、他の依存関係からの追加関数を再エクスポートします。

nanoid

nanoid/nonsecureのインラインコピー。暗号化的に安全でないランダムなID文字列を生成します。 createAsyncThunkは、リクエストIDにデフォルトでこれを使用します。他の場合にも役立つ場合があります。

import { nanoid } from '@reduxjs/toolkit'

console.log(nanoid())
// 'dgPXxUz_6fWIQBD8XmiSy'

miniSerializeError

https://github.com/sindresorhus/serialize-errorに基づいて、createAsyncThunkで使用されるデフォルトのエラーシリアライズ関数。引数がオブジェクト(Errorインスタンスなど)の場合、リストされているフィールドのいずれかをコピーするプレーンJS SerializedErrorオブジェクトを返します。それ以外の場合、値の文字列化された形式:{ message: String(value) }を返します。

export interface SerializedError {
name?: string
message?: string
stack?: string
code?: string
}

export function miniSerializeError(value: any): SerializedError {}

copyWithStructuralSharing

値が同じに見える場合は既存の参照を保持しながら、2つの類似したオブジェクトを再帰的にマージするユーティリティ。これは、新しいデータが実際に変更されていない限り、再フェッチされたデータが同じ参照を使用し続けるようにするために内部的に使用され、不要な再レンダリングを回避します。そうでなければ、すべての再フェッチは、データセット全体が置き換えられ、すべてのコンシューマコンポーネントが常に再レンダリングされる可能性があります。

入力のいずれかがプレーンJSオブジェクトまたは配列でない場合、新しい値が返されます。

export function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T
export function copyWithStructuralSharing(oldObj: any, newObj: any): any {}

他のライブラリからのエクスポート

createNextState

immerライブラリのデフォルトのイミュータブル更新関数。ここではcreateNextStateとして再エクスポートされます(一般的にproduceとも呼ばれます)。

current

immerライブラリcurrent関数。ドラフトの現在の状態のスナップショットを取得し、それを確定します(ただし、フリーズしません)。 currentは、デバッグ中に現在の状態を出力するための優れたユーティリティであり、currentの出力は、プロデューサーの外部に安全にリークすることもできます。

import { createReducer, createAction, current } from '@reduxjs/toolkit'

interface Todo {
//...
}
const addTodo = createAction<Todo>('addTodo')

const initialState = [] satisfies Todo[] as Todo[]

const todosReducer = createReducer(initialState, (builder) => {
builder.addCase(addTodo, (state, action) => {
state.push(action.payload)
console.log(current(state))
})
})

original

immerライブラリoriginal関数。元のオブジェクトを返します。これは、reducerでの参照の等価性チェックに特に役立ちます。

isDraft

immerライブラリisDraft関数。指定された値がProxyでラップされた「ドラフト」状態かどうかを確認します。

freeze

immerライブラリfreeze関数。ドラフト可能なオブジェクトをフリーズします。

combineReducers

便宜上再エクスポートされたReduxのcombineReducersconfigureStoreはこれを内部的に呼び出しますが、複数のレベルのスライスreducerを構成するために自分で呼び出すことができます。

compose

Reduxのcompose。関数を右から左に構成します。これは関数型プログラミングユーティリティです。複数のストアカスタムエンハンサー/関数を連続して適用するために使用できます。

bindActionCreators

ReduxのbindActionCreators。アクションクリエイターをdispatch()でラップするため、呼び出されるとすぐにディスパッチされます。

createStore

ReduxのcreateStore。これを直接使用する必要はありません。

applyMiddleware

ReduxのapplyMiddleware。これを直接使用する必要はありません。