为什么将redux上的默认状态初始化为false而不是空?

时间:2018-08-24 20:10:35

标签: javascript reactjs types redux react-boilerplate

我不确定这是否是常见的做法,但是当我浏览广受欢迎的react-boilerplate应用程序时,我注意到商店密钥的默认值总是 设置为false,无论实际类型是ArrayObjectNumber还是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]),

Public Class GuestController Inherits ApiController Public Function SaveValue(<FromUri> ByVal passedName As String) As Savedata 'Get guest data from database Dim guestResult As New Savedata guestResult.Name = passedName.ToLower() Return guestResult End Function End Class

谢谢。

1 个答案:

答案 0 :(得分:0)

这并不总是Array/Boolean。当我们将API响应存储在redux中时,它通常以JSON格式出现,因此它完全取决于数据类型。

以这个为例:

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

如果您在初始化状态时更改其任何数据类型,则在验证更新的道具unmounting/clearing redux store时,您的应用可能会崩溃。我和他们在一起很开心。

随时询问任何进一步的查询。