Почему состояния по умолчанию в приставке инициализируются как ложь вместо пустых? - PullRequest
0 голосов
/ 24 августа 2018

Я не уверен, является ли это обычной практикой, но пока я просматривал очень популярное приложение реагирующий шаблон , я заметил, что значения ключей хранилища по умолчанию были всегда устанавливается на false независимо от того, является ли фактический тип Array, Object, Number или String.

// The initial state of the App
const initialState = fromJS({
  loading: false,
  error: false,
  currentUser: false,    // String
  userData: {
    repositories: false, // Array of Objects
  },
});

function appReducer(state = initialState, action) {
  .....

Есть ли здесь лучшая практика в игре? Потому что в этой реализации тип данных в компоненте JSX должен быть Array or Boolean вместо просто Array, что и должно быть в первую очередь.

repos: PropTypes.oneOfType([PropTypes.array, PropTypes.bool]),

Заранее спасибо.

1 Ответ

0 голосов
/ 24 августа 2018

Это не всегда будет Array/Boolean.Когда мы храним ответ API в избыточном, он обычно приходит в формате JSON, поэтому он полностью зависит от типа данных.

Возьмем это как пример:

const INITIAL_STATE = { 
  isSearchDestinationAvailable: false,
  searchedDestination: {},
  destination: []
};

Если вы измените какой-либо из их типов данных при инициализации состояния, ваше приложение может аварийно завершить работу при проверке обновленных реквизитов unmounting/clearing redux store.Я отлично провел время с ними.

Не стесняйтесь задавать любые дальнейшие вопросы.

...