React redux 状态已更改,但在组件视图中它不会更新 UI
React redux state is changed but in component view it doesn't update the UI
const mapStateToProps = state => {
return {
products: state.priceTabProducts
};
};
class App extends Component {
render() {
return (
<div>
<Layout>
<Route path="/:product" component={ProductsPage}/>
<ProductsTab
show={this.props.showPriceTab}
quantity={this.props.products.length}
/>
</Layout>
</div>
);
}
}
我改变了状态,它工作得很好,我想将长度传递给组件,但它并没有改变它的值。我该如何解决这个问题?
问题是您改变了状态,因为如果引用没有改变,将不会触发重新渲染。您应该改用 concat 来更新数组
export function priceTabProducts(state = [], action) {
switch (action.type) {
case PRICE_TAB_PRODUCTS: return state.concat(action.payload);
default: return state
}
}
const mapStateToProps = state => {
return {
products: state.priceTabProducts
};
};
class App extends Component {
render() {
return (
<div>
<Layout>
<Route path="/:product" component={ProductsPage}/>
<ProductsTab
show={this.props.showPriceTab}
quantity={this.props.products.length}
/>
</Layout>
</div>
);
}
}
我改变了状态,它工作得很好,我想将长度传递给组件,但它并没有改变它的值。我该如何解决这个问题?
问题是您改变了状态,因为如果引用没有改变,将不会触发重新渲染。您应该改用 concat 来更新数组
export function priceTabProducts(state = [], action) {
switch (action.type) {
case PRICE_TAB_PRODUCTS: return state.concat(action.payload);
default: return state
}
}