У меня возникла проблема с React Native при использовании Redux.
Я использую состояние 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
, который я определил.