Давайте предположим, что у нас есть этот магазин:
// initialState.js file
export default = {
_token: 'a hashed long string from server',
user: {
key: value,
... many more
}
.. many more
}
и вот редуктор ТОКЕНА:
import * as types from '../actions/actionTypes'
import initialState from './initialState'
export default function tokenReducer(state = initialState._token, action) {
switch(action.type) {
case types.CHANGE_TOKEN:
console.log(action.payload) // a new hashed long string from server
return action.payload // payload is a token string that comes from server
default:
return state
}
}
Это нормально?
Я имею в видучто я использовал ТОЛЬКО initialState.token
часть хранилища в своем редукторе, чтобы предотвратить возврат целого состояния с помощью Object.assign
или оператора распространения, я просто обновил строку (токен).
Этоправильный способ изменить только одно строковое значение из хранилища, или я должен вернуть все состояние и использовать Object.assign
, как показано ниже?
import * as types from '../actions/actionTypes'
import initialState from './initialState'
export default function tokenReducer(state = initialState._token, action) {
switch(action.type) {
case types.CHANGE_TOKEN:
console.log(action.payload) // a new hashed long string from server
return {
...state ,
Object.assign({}, state, {_token: action.payload})
}
default:
return state
}
}