我在Redux中拥有自己的状态,并且正在使用react-redux连接器将其绑定到我的React应用程序中。在设置状态的初始运行期间,连接工作良好。然而,当我在reducer中更新状态的一部分时,它不会被React读取,所以组件不会再次渲染。当我做一些强制渲染的其他行为时,国家实际上已经改变了。当Redux状态改变到低于第一级时,React未更新
这似乎具有与状态不是识别为已经改变,并且,在反应-终极版的方法wrapWithConnect做,则storeChanged和propsChanged都评估为假通过初始运行之后。一个线索可能是那些反应,在这些检查比较浅层次。
问题是“当Redux中的状态变化时,我需要做些什么才能让React显示我的状态变化”?
的状态的相关部分低于
let thisOrder = Immutable.fromJS({
"projectNumber": '',
"orderHeader": {
"order_id": "",
"firstname": "",
"lastname": "",
"address1": "",
),
"orderProducts": [],
"lastOperation": ''});
即得到更新是orderProducts,产品的数组基本上看起来像
orderProducts:[{productSKU:'Y54345',productDesc:'What it is',price:"4.60",qty:2},
{productSKU:'Y54345',productDesc:'What what is',price:"9.00",qty:1}]
当在减速器更新数量或价格的部分下面(通过动作调用)由此产生的新状态已更改
case OrderConstants.ORDER_PRODUCT_UPDATE:{
let productList = updateProductList(action.updateProduct, state.get(
'orderProducts'))
let newState = state.update('orderProducts',
productList).set('lastOperation', action.type);
return newState;}
最后,控制阵营组件然后发送被修整至相关部分下游
render: function() {
return (
<div>
<ProductList updateOrder={this.updateOrder()} products={this.props.products}/>
{this.submitContinueButton()} {this.submitButton()}
{this.cancelButton()}
</div>
</div>
)
}
});
// connect to Redux store
var mapStateToProps = function (state) {
return { ocoStore: state.toJS(),
products: state.get('orderProducts')};
};
export default connect(mapStateToProps)(OrderProducts);
上述所有的道具。请注意,代码用于在初始加载时在较低组件上显示产品信息。这是更新价格或数量刷新没有发生。
你可以为你的'updateProductList'方法提供代码吗? – DDA