Я новичок, чтобы среагировать, пытаюсь сделать боковую панель.
Мне уже удалось достучаться до редуктора.
// sidebarReducer.js
const sidebar = (state = { visible: false }, action) => {
switch (action.type) {
case "SHOW":
console.log("show");
return { ...state, visible: true };
case "HIDE":
console.log("hide");
return { ...state, visible: false };
default:
return state;
}
};
export default sidebar;
.
class SidebarContainer extends Component {
handleOpen = () => {
this.props.dispatch({ type: 'SHOW'});
}
handleClose = () => {
this.props.dispatch({ type: 'HIDE'});
}
handleToggle = () => {
const { visible } = this.props;
const { handleClose, handleOpen } = this;
if(visible) return handleClose();
handleOpen();
console.log(visible); // ouput : undefined.
}
render(){
const { visible } = this.props;
const { handleToggle, handleClose } = this;
return[
visible && <Dimmer onClick={handleClose} key="dimmer"/>,
<Sidebar visible={visible} onClose={handleClose} key={0}/>,
<Hamburger active={visible} onToggle={handleToggle} key={1}/>
]
}
}
export default connect()(SidebarContainer);
Когда вызывается событие handleToggle, я получаю два журнала, которые "показывают" из console.log ("show") в sidebarReducer.js и "undefined" из console.log (видимого) в SidebarContainer.js.
когда видимое имеет значение true, будет показан компонент диммера, боковой панели и гамбургера.
но поскольку я не знаю причину, по которой видимое не определено, оно не отображается. Подскажите пожалуйста причину ??