0
我希望我的部件重新渲染,每次我叫“state.set(...)”,即使值不会改变。如何重新渲染组件每次状态设置
那么嗨,我有这样的减速,这被称为每次屏幕大小:
import Immutable from 'immutable';
const initialState = Immutable.fromJS({
width: ''
});
export default (state=initialState, action) => {
switch(action.type){
case "SCREEN_RESIZE":
if(action.payload >= 768){
return state.set('width', 'big');
}
else{
return state.set('width', 'small');
}
default:
break;
}
return state;
}
我使用ImmutableJS与终极版一起,所以我的店是地图的地图(整店) (每个减速器)。
的问题是,我的组件只有当我们改变从“大”到“小”,还是从“小”到“大”,也就是价值变动时,“宽度”重新呈现!
我希望它当我设置从宽度甚至重新呈现“大”到“大”或“小”来“小”。
难道我做任何错误?
这是我rootReducer
import { combineReducers } from 'redux-immutable';
import reducer1 from './reducer1_reducer';
import reducer2 from './reducer2_reducer';
import reducer3 from './reducer3_reducer';
import screenSize from './screenSize_reducer';
import reducer5 from './reducer5_reducer';
import rounting from './routerReducer';
const rootReducer = combineReducers({
reducer1,
reducer2,
reducer3,
screenSize,
reducer5,
routing
});
export default rootReducer;
在反应,呈现紧耦合状态的变化。即使状态保持不变,您想呈现的任何特定原因?您是否尝试因视口/屏幕尺寸的变化而重新渲染? – warriorpostman
正好。有一个组件在渲染时根据窗口大小计算尺寸。所以如果不重新渲染,它仍然是一样的。 –
设置宽度的值在减速机,并使用选择器,用于计算'big' /'small'。将派生数据保留在redux商店的状态永远不是一个好主意。 – Josep