gpt4 book ai didi

reactjs - 通过从非 React 组件分派(dispatch)操作来更新 React 组件

转载 作者:行者123 更新时间:2023-12-03 13:16:31 26 4
gpt4 key购买 nike

当用户将商品添加到购物车时,我尝试更新项目上的购物车按钮。

我在 React.js 中构建了网站的部分内容 - 例如购物车、购物车按钮等。

configureStore.js:

export default function configureStore(initialState) {
const store = createStore(
reducers,
initialState
return store
}

行动:

export function updateCart(payload) {
return {
type: CART_UPDATE,
payload: payload
}
}

reducer :

export default function cart(state = {}, action) {

switch (action.type) {

case CART_UPDATE:

const cart = {
data: action.payload.cart,
errors: action.payload.errors,
isFetching: false
};

return {
...state,
...cart
};

return state;
}

CartButton.js

... componnent etc.

function mapStateToProps(state) {
return {
cart: state.cart.data
};
}

export default connect(mapStateToProps)(CartButton);

提供商

import configureStore from './store/configureStore'
var store = configureStore();

ReactDOM.render((<Provider store={store}><Cart showControls={true} /></Provider>), document.getElementById('react-cart'));

我正在调度一个应该从非 react 组件更新购物车数量的操作,如下所示:

// imports 
import { dispatch } from 'redux';
import { updateCart } from '../../actions/cart_actions';
import configureStore from '../../store/configureStore'
var store = configureStore();

然后..

store.dispatch(updateCart(response));

操作已调度并且状态已更新。购物车按钮组件通过连接。 React-Redux connect() 函数。但不知何故,它没有用新数量更新组件。

当我从购物车 React 组件中分派(dispatch)一个操作时,它工作正常。

我可能会遗漏一些明显的东西。有什么建议吗?

最佳答案

所以我最终发现,您不应该在多个地方定义您的商店。

我只是从我的根 app.js 文件中导入了存储常量,如下所示:

从'./app'导入{store};

关于reactjs - 通过从非 React 组件分派(dispatch)操作来更新 React 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36457424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com