Как именно вызывается функция редуктора в Reaction-redux? - PullRequest
0 голосов
/ 19 февраля 2019

Я действительно запутался с этим кодом.Я просто хочу знать, как мы передаем параметры в функцию reducer(state, action).Мой главный вопрос: как параметр action отправляется функции редуктора в моем файле Comments.js?Я даже не импортирую файл 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;
    }
}

1 Ответ

0 голосов
/ 19 февраля 2019

Когда вы настроили хранилище с избыточностью, вы должны передать свои редукторы для хранения, как здесь .Теперь, если вы видите в примере, они звонят store.dispatch(<some_action>).По сути, теперь ваш магазин знает, что есть все редукторы, он вызывает каждый из этих редукторов с полезной нагрузкой, переданной в функции отправки, и возвращает вам обновленное хранилище.Но, скорее всего, вы не звоните store.dispatch() напрямую, вы должны использовать connect() для доступа к магазину.Как уже упоминалось здесь , он подключает ваш компонент к вашему хранилищу резервов, и теперь вам не нужно вызывать store.dispatch, вместо этого у вас есть прямой доступ к функции диспетчеризации, где вы передаете полезную нагрузку, и продолжается тот же процесс, что и в первом примере.,Вам не нужно импортировать редукторы вызовов, это делает редукция.Надеюсь, это прояснит ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...