Какова наилучшая практика для возврата нового состояния от редукторов в реакции / редукции? - PullRequest
0 голосов
/ 18 мая 2018

Как лучше всего возвращать новое состояние от редукторов - это с помощью $set и update с immutability-helpers или с помощью Object.assign()?

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

Лично я бы не использовал помощников по неизменности при работе над проектом, в котором легко управлять состоянием.Если у вас действительно большое состояние, может быть полезно использовать помощники по неизменяемости, чтобы вы не допустили ошибок.

И для возврата состояния в редукторе обычной практикой является возврат нового состояния с использованием оператора распространения.Это будет выглядеть примерно так:

return {...state, newProp: 'value', etc...}

0 голосов
/ 19 мая 2018

Во-первых, вам нужно четкое понимание редукса.это бэк-магазин на вашем фронте.хранить данные в формате FIFO или LIFO, как вы определили.Вы не можете переназначить его, просто вернитесь с action-object, используя оператор ES6 SPREAD и используя деструктуризацию.Я пытаюсь привести пример ниже:

const postsReducerDefaultState = [];
const postsReducer = (state=postsReducerDefaultState, action) => {
switch(action.type) {
  case 'ADD_POST':
    return [action.post, ...state];
  case 'REMOVE_POST':
    return state.filter(post => post.id !== action.id)
  case 'SET_POSTS':
    return action.posts;
  default:
    return state;
  }
};
export default postsReducer;

ADD_POST: сначала верните [action.post, ...state] самое позднее, затем распространяйте ваше старое сообщение.
SET_POSTS: верните action.posts, которое вы передали с вашимдействие.Если вы хотите установить свойство объекта, тогда используйте свойство destructuring

return {
      ...state,
      text:action.text
    }

text, которое уже есть в вашем состоянии.если нет, то это добавит свойство в ваш штат.Я думаю, что это поможет вам понять что-то избыточное.

0 голосов
/ 18 мая 2018

вы можете создать новое состояние в редукторе в редуксе, а также изменить состояние с помощью метода set, и вы можете вернуться на свою индексную страницу как реквизиты

ex: в редукторе вы пишете следующим образом

return state.set ('tasks', action.response)

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