[英]React Native - Redux ~ Props updating when not getting called
我在使用Redux時遇到React Native問題。
我正在使用Redux狀態來顯示/隱藏從一個組件到另一個組件的模式。 考慮到它是跨組件的,因此這似乎是最好的解決方案。
我的模式打開和關閉非常完美,並且顯示效果完全一樣。 但是,當我單擊此按鈕時,似乎父組件的道具再次被更新為初始狀態,我不確定原因。
父組件:
const mapStateToProps = state => {
return {
modalVisible: state.modals.addRoomModalVisible
}
};
const mapDispatchToProps = dispatch => {
return {
onMakeAddRoomModalActive: () => dispatch(makeAddRoomModalVisible())
}
};
export default connect(mapStateToProps, mapDispatchToProps)(RoomsScreen);
子組件
const mapStateToProps = state => {
return {
rooms: state.rooms.rooms
}
};
const mapDispatchToProps = dispatch => {
return {
onGetRooms: () => dispatch(getRooms())
}
};
export default connect(mapStateToProps, mapDispatchToProps)(RoomList);
模態減速機
import { HIDE_ADD_ROOM_MODAL, SHOW_ADD_ROOM_MODAL } from "../actions/actionTypes";
const initialState = {
addRoomModalVisible: false
};
const modalsReducer = (state = initialState, action) => {
switch (action.type) {
case SHOW_ADD_ROOM_MODAL:
return {
...state,
addRoomModalVisible: true
};
case HIDE_ADD_ROOM_MODAL:
return {
...state,
addRoomModalVisible: false
};
default:
return initialState;
}
};
export default modalsReducer;
似乎問題出在我調用onMakeAddRoomModalActive
道具時。 我退出了控制台,狀態正在重置, this.props.rooms
設置為空數組,這是我定義的initialState
對象。
問題出在我所有的減速器中。
在每個reducer case語句的末尾,我做了一個默認操作,將狀態設置為在reducer頂部定義的initialState
。
我需要將其更改為返回state
。
const modalsReducer = (state = initialState, action) => {
switch (action.type) {
case SHOW_ADD_ROOM_MODAL:
return {
...state,
addRoomModalVisible: true
};
case HIDE_ADD_ROOM_MODAL:
return {
...state,
addRoomModalVisible: false
};
default:
return state;
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.