Reactjs 查看isn';t重新加载,但我的Redux存储正确更新

Reactjs 查看isn';t重新加载,但我的Redux存储正确更新,reactjs,redux,Reactjs,Redux,因此,在我的应用程序中都有这种情况发生,但我只是在我的React应用程序中实现了redux,并且我的应用程序的状态得到了正确的管理,但我的React应用程序没有重新命名以反映更改 下面是我的一个React组件的示例: 从“react redux”导入{connect}; 从“redux”导入{bindActionCreators}; 从“./商店/商店”导入商店 从“./store/actions/index”导入{updateView} 功能装置(道具){ props.updateView(p

因此,在我的应用程序中都有这种情况发生,但我只是在我的React应用程序中实现了redux,并且我的应用程序的状态得到了正确的管理,但我的React应用程序没有重新命名以反映更改

下面是我的一个React组件的示例:

从“react redux”导入{connect};
从“redux”导入{bindActionCreators};
从“./商店/商店”导入商店
从“./store/actions/index”导入{updateView}
功能装置(道具){
props.updateView(props.type、props.objects);
var state=store.getState().objectView
store.subscribe(()=>{
state=store.getState().objectView;
})
console.log(状态);
var objcomponent=[];
state.objects.forEach((obj)=>{
objcomponent.push()
});
返回(
设备:{state.type}
{objcomponent}
)
}
const mapDispatchToProps=调度=>{
返回bindActionCreators({
updateView:updateView
},派遣);
}
导出默认连接(空,mapDispatchToProps)(设备)
在本例中,组件应该重新渲染以显示新设备。但是,它只会在阵列大小大于上次渲染时显示新设备。这是一个局部的重新渲染。它会显示出这样的东西

//上一个组件
变量分量=[1,2]
//预期的新组件
var分量=[3,4,5]
//实际新组件
变量分量=[1,2,5]
与此同时,在Redux商店,我可以看到所有应该发生的变化

如果你认为这会有帮助,以下是我的简化程序和操作。我不认为我是在改变原始状态,但是如果你在Redux方面有更多的专业知识,请指出这一点。我只不过是个新手

行动:

从“/objectviewactions”导入{UPDATE_VIEW}
export const updateView=(类型、对象)=>{
返回{
类型:更新视图,
有效负载:{type:type,objects:[…objects]}
}
}
减速器:

从“./actions/objectviewactions”导入{UPDATE_VIEW};
变量初始状态={
类型:“,
对象:[]
}
导出常量缩减器=(状态=初始状态,操作)=>{
开关(动作类型){
案例更新视图:
返回{
……国家,
…行动.有效载荷
}
违约:
返回状态
}
}

它看起来像是您的
ObjectComponent
实例需要的。当父组件(例如
设备容器
div
具有任意数量的子组件数组时,键允许React在渲染时保持可重复使用的组件和需要替换的组件

因此,您可以这样调用
ObjectComponent

<ObjectComponent key={obj.someUniqueIdentifier} info={obj.info} actions={obj.actions}/>

它看起来像是您的
ObjectComponent
实例需要的。当父组件(例如
设备容器
div
具有任意数量的子组件数组时,键允许React在渲染时保持可重复使用的组件和需要替换的组件

因此,您可以这样调用
ObjectComponent

<ObjectComponent key={obj.someUniqueIdentifier} info={obj.info} actions={obj.actions}/>

不要像那样直接访问React组件内部的Redux存储!这就是
connect()
应该为您处理的问题


您应该提供一个
mapStateToProps
函数作为提取组件所需数据的第一个参数,该数据将作为道具传递到组件中。

不要像这样直接访问React组件内部的Redux存储!这就是
connect()
应该为您处理的问题

您应该提供一个
mapstatetops
函数作为第一个参数来提取组件所需的任何数据,这些数据将作为道具传递到组件中