Я изучаю Redux, React и ES6. Я уже разработал JS, но этот новый мир ES6 удивляет меня множеством новых вещей, таких как «=>», чтобы объявлять функции стрелок и другие. Однако в этих новых исследованиях Redux я столкнулся с ...
в середине моего кода.Что означает «...» в Javascript (ES6)?
пыльник У меня есть пример:
import { combineReducers, createStore } from 'redux'
const userReducer = (state={}, action) => {
switch(action.type) {
case 'CHANGE_NAME':
state = {...state, name: action.payload};
break;
case 'CHANGE_AGE':
state = {...state, age: action.payload};
break;
}
return state;
};
const tweetsReducer = (state=[], action) => {
return state;
};
const reducers = combineReducers ({
user: userReducer,
tweetsReducer: tweetsReducer,
});
const store = createStore(reducers);
store.subscribe(() =>
console.log('The chage was: ', store.getState())
);
store.dispatch({type: 'CHANGE_NAME', payload: 'Will'})
store.dispatch({type: 'CHANGE_AGE', payload: 21});
Если я заменяю
state = {...state, name: action.payload};
и
state = {...state, age: action.payload};
с
state.name = action.payload;
и
state.age = action.payload;
он работает, но возраст был включен в имя объекта вместе и в первом случае имя было вставлено и после установки возраста.
Почему это происходит? Как я могу использовать ...
в моих будущих кодах? Это просто связано с государствами?
'...' является оператором распространения: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator – hackerrdave
Спасибо! Когда я спросил, я не нашел. Таким образом, это действительно дубликат. Однако, спасибо за ваши ответы. – Aipi
@hackerrdave: ['...' не является оператором] (https://stackoverflow.com/questions/37151966/what-is-spreadelement-in-ecmascript-documentation-is-it-the-same-as- распространение-опер/37152508 # 37152508). –