图像与设计
在 json-render 中使用 Redux/Redux…
把 Redux store 或 Redux Toolkit slice 接入 json-render 的 StateStore,让 json-render 的读写通过 Redux 完成。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在 json-render 中使用 Re特定
解决思路
- 安装依赖:`npm install @json-render/redux @json-render/core @json-render/react redux`;若使用 Redux Toolkit(推荐):`npm install @json-render/redux @json-render/core @json-render/react @reduxjs/toolkit`。
- 从 `@reduxjs/toolkit` 导入 `configureStore`、`createSlice`,从 `@json-render/redux` 导入 `reduxStateStore`,从 `@json-render/react` 导入 `StateProvider`。
- 为 json-render 状态定义 slice:设置 `name`、`initialState`(例如 `{ count: 0 } as Record<string, unknown>`)、`reducers` 中的 `replaceUiState: (_state, action) => action.payload`。
- 用 `configureStore({ reducer: { ui: uiSlice.reducer } })` 创建 Redux store。
- 创建 json-render 的 StateStore 适配器:调用 `reduxStateStore({ store: reduxStore, selector: (state) => state.ui, dispatch: (next, s) => s.dispatch(uiSlice.actions.replaceUiState(next)) })`。
- 使用状态提供器:`<StateProvider store={store}>...</StateProvider>`,使 json-render 的读取/写入通过 Redux 进行。
- API `reduxStateStore(options)`:传入必填的 `store`,即 Redux store 实例。
- 传入必填的 `selector`,类型为 `(state) => StateModel`,用于从 Redux 状态树中选择 json-render slice;若整个状态就是模型,用 `(s) => s`。
- 传入必填的 `dispatch`,类型为 `(nextState, store) => void`,用于派发一个 action,用下一个状态替换选中的 slice;该回调会收到完整的 next state model 和 Redux store。
适用边界 · 注意事项
- 项目没有使用 Redux 或 Redux Toolkit,或不想引入这些依赖。
- 项目没有使用 json-render,或不需要通过 `StateStore` 与 `StateProvider` 接入状态。
- 需要以非 Redux 的状态管理方案作为 json-render 后端。