javascript - react 响应式导航栏

标签 javascript reactjs

我有一个标准导航栏,其中大约有 8 个选项相邻。 当我调整窗口大小时,我想显示尽可能多的选项,而不需要水平滚动条。 其他选项将放在“显示更多”下拉列表中。

在我的 React 组件中,可以使用调整大小监听器并使用 vanilla-javascript 移动 DOM 元素吗? 或者有更好的 React 方法来做到这一点吗?

更新: 这是一个简单的 jquery codepen 女巫展示原理: http://codepen.io/sstraatemans/pen/MJNGaL

这是我的组件的渲染方法:

render () {
  let navItems = [
    {title: "home", link: "/"},
    {title: "news", link: "/news"},
    {title: "organisation", link: "/organisation"},
    {title: "people", link: "/people"}
  ];

  return (
    <Nav>
      {navItems.map((item) => {
        return (
          <NavItem title={item.title} link={item.link} />
        );
      })}
    </Nav>
  );
}

感谢您的帮助。

最佳答案

只要思考就可以 react 。

您可能需要 toggleNavupdateDocWidth 函数来更改状态:

this.state = {
  doc_width: document.body.clientWidth,
  show_nav: false
}

并在render()的return之前添加window.onresize = this.updateDocWidth,剩下的就是渲染了。

关于javascript - react 响应式导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42369411/

相关文章:

javascript - 使用 JavaScript/jQuery 在文件浏览对话框中单击打开按钮后获取文件名

javascript - 没有表单元素的 jQuery AJAX POST?

javascript - 使用node.js require加载模块

javascript - React onclick 在非类组件上隐藏此组件

javascript - React Native redux 导出默认连接

javascript - 在渲染函数中调用返回 JSX 元素的函数

javascript - DataTable分页后无法点击按钮

JavaScript 日期月份是零索引的......但是为什么呢?

javascript - 如何在react中获得ajax响应?

php - React前端服务器和PHP/Symfony后端服务器之间共享 session