在运行时根据传递的 data- 属性设置 redux 工具包 initialState
Setting redux toolkit `initialState` based on passed `data-` attribute at runtime
我有一个 React 应用程序,可以在单个 html 页面上多次嵌入。每次 html 标签都可以带有不同的 data-*
属性,用于应用程序的初始化:
<div class="my-app" data-my-config="SOME_ENCODED_JSON_PROPERTIES" />
根据传递的 SOME_ENCODED_JSON_PROPERTIES
,应用程序的 redux 存储将使用不同的 initialState
初始化。阅读有关 initialState 的文档和示例,initialState 总是从一些静态 const
变量设置 - 如何在传递给初始 data-my-config
属性的“运行时”设置它?
示例只能显示基础知识 - 根据这些示例可能 推断什么很重要。
在这种情况下,关键是您必须在调用 createSlice()
时在范围内提供可用数据。您如何获得该价值以及它来自何处取决于您。
如果根据您的体系结构这不可行,那么您始终可以提供占位符初始状态,然后:
- 通过向
configureStore
提供包含此切片数据的 preloadedState
参数来覆盖该值
- 在切片中定义一个 reducer,用 action 负载替换其状态,并在创建初始存储后分派该 action
我有一个 React 应用程序,可以在单个 html 页面上多次嵌入。每次 html 标签都可以带有不同的 data-*
属性,用于应用程序的初始化:
<div class="my-app" data-my-config="SOME_ENCODED_JSON_PROPERTIES" />
根据传递的 SOME_ENCODED_JSON_PROPERTIES
,应用程序的 redux 存储将使用不同的 initialState
初始化。阅读有关 initialState 的文档和示例,initialState 总是从一些静态 const
变量设置 - 如何在传递给初始 data-my-config
属性的“运行时”设置它?
示例只能显示基础知识 - 根据这些示例可能 推断什么很重要。
在这种情况下,关键是您必须在调用 createSlice()
时在范围内提供可用数据。您如何获得该价值以及它来自何处取决于您。
如果根据您的体系结构这不可行,那么您始终可以提供占位符初始状态,然后:
- 通过向
configureStore
提供包含此切片数据的preloadedState
参数来覆盖该值 - 在切片中定义一个 reducer,用 action 负载替换其状态,并在创建初始存储后分派该 action