Как сохранить строку в магазине Redux - PullRequest
0 голосов
/ 05 июля 2019

Я изучаю React-Redux и теперь мне нужна помощь с Магазином.Я не могу заставить это работать I, когда действие FOUND_BAD_WORD поражено, плохое слово находится в полезной нагрузке.

Я хочу обновить Redux Store таким словом: (псевдокод в стиле JAVA)

import { ADD_ARTICLE } from "../constants/action-types";
import { FOUND_BAD_WORD } from "../constants/action-types";

    const initialState = {
      articles: []
    };
    var badword;

    export default function reducer(state = initialState, action) {
      if (action.type === ADD_ARTICLE) {
        return Object.assign({}, state, {
          articles: state.articles.concat(action.payload)
        });
      }

      if (action.type === FOUND_BAD_WORD) {
        // If user type a bad word then save the word in the store

          badword = action.payload;
      }
      return state;
    } 

Я знаю, что это простой вопрос, но я ищу его и нахожу только расширенные ответы

У меня есть объект, соединенный с mapStateToProps в магазине badword, но я не могу получитьэто работает, потому что мне нужно сначала изменить плохое слово, я думаю ??

1 Ответ

1 голос
/ 05 июля 2019

Следуя тому, как вы это делаете, это будет:

      if (action.type === FOUND_BAD_WORD) {
       return Object.assign({}, state, {badword: action.payload})
    } 

Но было бы более элегантно обрабатывать действия редуктора в операторе switch и использовать объектный разброс.

import { ADD_ARTICLE, FOUND_BAD_WORD  } from "../constants/action-types";

    const initialState = {
      articles: [],
    };
const yourReducerName = (state = initialState, action) => {
  switch(action.type) {
    case ADD_ARTICLE : return {
      ...state,
      articles: [...state.articles, action.payload]
      }
    case FOUND_BAD_WORD : return {
      ...state,
      badword: action.payload
      }
    default: return {...state}
   }
}
export default yourReducerName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...