我希望我的Reducer能够填充状态中的根对象,而不依赖于它们操作的状态切片。
我发现很多页面都解释了normalizr的精彩程度,但没有人解释存储此规范化数据的位置和方式。
问题是:
我想做一些与众不同的错误吗?
如何修改根状态对象中的状态,因为reducers只对数据的一部分进行操作。
所以视频缩减器:
const videos = (state, action) => {
switch (action.type) {
case 'LOAD_VIDEOS': {
return ....
}
}
}
不仅应填充state.videos
(带有视频ID数组),还应填充state.database.videos
(以及其他密钥,如果视频包含其他实体),并使用规范化数据。
答案 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()