使用redux存储规范化数据

时间:2016-04-12 14:25:15

标签: reactjs redux reducers normalizr

我希望我的Reducer能够填充状态中的根对象,而不依赖于它们操作的状态切片。

我发现很多页面都解释了normalizr的精彩程度,但没有人解释存储此规范化数据的位置和方式。

问题是:

  1. 我想做一些与众不同的错误吗?

  2. 如何修改根状态对象中的状态,因为reducers只对数据的一部分进行操作。

  3. 所以视频缩减器:

    const videos = (state, action) => {
      switch (action.type) {  
        case 'LOAD_VIDEOS': {
          return ....
        }
      }
    }
    

    不仅应填充state.videos(带有视频ID数组),还应填充state.database.videos(以及其他密钥,如果视频包含其他实体),并使用规范化数据。

1 个答案:

答案 0 :(得分:3)

如果你的减速器需要处理的不仅仅是一片状态,那就给它整个状态。

如果你使用CREATE FUNCTION fReplaceAmpersand (@InputString VARCHAR(255)) RETURNS TABLE AS RETURN SELECT REPLACE(@InputString, '&', '&') AS OutputString GO -- ---------------------------------------------------- SELECT a.OutputString FROM MyTable m OUTER APPLY dbo.fReplaceAmpersand(m.MyText) a ,你可以把它包起来让你保持组合减速器的优点,你仍然可以有一个适用于完整状态的减速器:

combineReducers()