在运行时根据传递的 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