我不知道这是用正确的方式immutable.js
与终极版和reselect
(也redux-saga
)。 具体来说,我想知道toJS()
和fromJS()
并在使用它们。 我的想法是:
- 我用
toJS()
将数据发送到一个传奇。 - 我不使用
fromJS()
因为我认为这是事实,我使用反正做过减速fromJS()
的初始化状态。 还是我错了? - 我用
toJS()
在选择从reselect
,所以我可以使用JS数据反应组分。
例:
1)在我的反应组件我做的:
// mapDispatchToProps
function mapDispatchToProps(dispatch) {
return {
loginRequest: values => dispatch(loginRequest(values)),
};
}
// Sending values.toJS() to my redux-saga.
submit = values => {
this.props.loginRequest(values.toJS());
};
2)在减速机怎么办?( 应该使用一个fromJS()
在这里不按照Redux的文档,你应该)?
const { fromJS } = require('immutable');
const state = fromJS({
pages: {
usersPage: {
loading: false,
isFetched: false,
list: [],
}
}
});
function reducer(state, action) {
switch(action.type) {
case 'USERS_LOADED':
return state
.setIn(['usersPage', 'list'], action.payload) // fromJS() here or not?
.setIn(['usersPage', 'isFetched'], true)
.setIn(['usersPage', 'loading'], false)
;
default:
return state;
}
}
export default reducer;
3)在我选择我做toJS()
再次:
const selectUser = state => state.get('user', initialState);
const makeSelectList= () =>
createSelector(selectUser, userState => userState.getIn(['usersPage',
'list']).toJS());
// Which I then use in my react component:
const mapStateToProps = createStructuredSelector({
list: makeSelectList(),
});
所以基本上我不知道这是否是皈依的JS和不变之间的正确流程。 或者可以以某种方式(少皈依步骤)进行优化? 也许上面是逻辑的非最佳方法是什么?
最好的祝福