在redux应用程序中,我在reducers文件中设置了defaultState
。
/* reducers.js */
const defaultState = {
items: [],
loadingFlags: {
items: false
},
userData: {
name: '',
id: null
}
}
const rootReducer = (state = defaultState, action) => {
switch (action.type) {
case 'ADD_ITEM'
return addItem(state, action)
/* etc */
}
}
然后在设置值后使用组件中的值:
/* UserDisplay.js */
const UserDisplay = props => <div>{props.username}</div>
const mapStateToProps = state => ({
username: state.userData.name
})
使用这样的架构,UserDisplay.defaultProps
是否不必要?我之前已经看过你有`defaultState和
A)
UserDisplay.defaultProps = {username: ''}
或
b)中
const mapStateToProps = state => ({
username: state.userData.name || ''
})
这两个似乎都是多余的,因为reducers.js将始终将userData.name
设置为''。是否存在需要方法A或B的情况(例如,用户名设置为异步)?
答案 0 :(得分:0)
我认为这取决于,对吗?具有defaultProps
的组件是否会被另一个容器使用?还是用另一台减速机?在这种情况下,它值得拥有默认道具。
如果其他容器从不使用该组件,则默认道具是多余的。
如果某些东西很容易机械化,让你感觉良好,并且实际上并没有减少代码中的错误,那么你很可能会浪费你的时间。
和
在实际使用它们两次之前,请勿将“表示组件”分开。等
如果您需要默认道具,因为您遇到了错误,那么是。如果一个组件将被其他容器重用,那么拥有默认道具是一个安全的想法。
我说根据每种情况判断这一点。