gpt4 book ai didi

reactjs - react-redux中reducer函数到底是怎么调用的

转载 作者:行者123 更新时间:2023-12-03 16:24:01 25 4
gpt4 key购买 nike

我真的对这段代码感到困惑。我只想知道我们如何将参数传递到 reducer(state, action)功能。
我的主要问题是:action 参数是如何发送到我的 Comments.js 文件中的 reducer 函数的?我什至没有导入 ActionCreator.js 文件,但我能够使用和评论返回的有效负载值。这怎么可能?有人,请以透明的方式向我解释这一点。

请原谅我的代码片段编辑

 /ActionTypes.JS
export const ADD_COMMENT='ADD_COMMENT';
/ActionCreator.js

import * as ActionTypes from './ActionTypes';


export const addComment=(dishId, rating, author, comment)=>({
type:ActionTypes.ADD_COMMENT,
payload:{
dishId:dishId,
rating:rating,
author:author,
comment:comment
}
})

/Comments.js
import {COMMENTS} from "../shared/comments";
import * as ActionTypes from "./ActionTypes"
export const Comments=(state=COMMENTS, action)=>{
switch(action.type){
case ActionTypes.ADD_COMMENT:
var comment=action.payload;
comment.id=state.length
comment.date=new Date().toISOString()
console.log("Comment" + comment)
return state.concat(comment)
default:
return state;
}
}

最佳答案

当你配置了 redux 存储时,你必须通过你的 reducer 来存储像 here .
现在,如果您在示例中看到,他们正在调用 store.dispatch(<some_action>) .基本上现在您的商店知道所有 reducer 都在那里,它调用 每个 reducer 使用在调度函数中传递的有效负载并返回更新的商店。但最有可能的是,您没有调用 store.dispatch()直接,您必须使用 connect()访问商店。如前所述here ,它将您的组件连接到您的 redux 存储,现在您不必调用 store.dispatch相反,您可以直接访问传递有效负载的调度功能,并且与第一个示例中的相同过程继续进行。您不必导入调用缩减器,redux 会为您完成。希望这能让事情变得清楚。

关于reactjs - react-redux中reducer函数到底是怎么调用的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54760382/

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