javascript - 在 React JS/Redux 中使用 CSS 显示/隐藏 div

标签 javascript css reactjs react-redux

我正在尝试使用 CSS 和 className 切换 div。我正在使用 redux 来更新 bool 值的状态。我可以通过 redux chrome 扩展程序确认状态 正在 发生变化,但 div 没有显示。如果有人对问题有任何想法,请告诉我。

组件:

const ShowHideDiv = (props) => (
  <div>
    <Button onClick={props.toggleDiv} />
    <div className={props.hidden ? style.hidden : style.open}>
      <TextInput />
    </div>
  </div>
);

function mapDispatchToProps(dispatch) {
  return {
    toggleDiv: () => dispatch(toggleDiv()),
  };
}

export default connect(null, mapDispatchToProps)(ShowHideDiv);

Action .js:

const toggleDiv = () => {
  return {
    type: 'TOGGLE_DIV',
  };
};

reducers.js

const toggleDivReducer = (state = { hidden: true}, action) => {
  switch(action.type) {
    case 'TOGGLE_DIV':
      return Object.assign({}, state, {hidden: !state.hidden});
    default:
      return state;
  }
};

样式.scss

.hidden {
  display: none;
}

.open {
  display: inline;
}

显示页面

<ShowHideDiv hidden={props.hidden} />

function mapStateToProps({demo}) {
  return {
    hidden: demo.hidden,
  };
}

最佳答案

我已经弄清楚我做错了什么。问题出在我的显示页面 mapStateToProps 中。我没有正确分配 hidden 属性。

而不是这样做:

function mapStateToProps({demo}) {
  return {
    hidden: demo.hidden,
  };
}

我应该这样做:

function mapStateToProps({demo}) {
  return {
    hidden: demo.toggleDivReducer.hidden,
  };
}

请务必牢记这一点,尤其是当您拥有 combineReducers 函数时。

关于javascript - 在 React JS/Redux 中使用 CSS 显示/隐藏 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38651129/

相关文章:

javascript - 在 Sinatra (ruby) 中实现 JS 模糊搜索

javascript - 选择一项向下滑动

css - 具有 flex 问题的 Wordpress 两列事件管理器

javascript - 在React中调用jsx文件设置Highcharts饼图默认值

javascript - 无法在 if/else 代码块中正确设置元素样式

javascript - 导航切换仅在最小化窗口时可见

javascript - 网页中的 Java Swing

javascript - react : How to navigate through list by arrow keys

javascript - 帮助将数组循环到现有 div 中

css - SWF 全宽响应