Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 呈现引导组件时出错_Javascript_Reactjs_Ecmascript 6_React Bootstrap - Fatal编程技术网

Javascript 呈现引导组件时出错

Javascript 呈现引导组件时出错,javascript,reactjs,ecmascript-6,react-bootstrap,Javascript,Reactjs,Ecmascript 6,React Bootstrap,我最近已经从在react类中使用twitter引导迁移到使用react引导。我想测试一下react引导Navbar。我的代码如下: import React from 'react'; import { Link } from 'react-router'; import Radium from 'radium'; import Grid from 'bootstrap-grid-react'; import * as bootstrap from "react-bootstrap"; ex

我最近已经从在react类中使用twitter引导迁移到使用react引导。我想测试一下react引导Navbar。我的代码如下:

import React from 'react';
import { Link } from 'react-router';
import Radium from 'radium';
import Grid from 'bootstrap-grid-react';
import * as bootstrap from "react-bootstrap";


export default class Layout extends React.Component {

    constructor() {
        super();
        this.state = {};
    }

    render() {
        let {Nav, Navbar, NavItem, NavDropdown, MenuItem} = bootstrap;
        return (
            <div>
                <Navbar>
                    <Navbar.Header>
                      <Navbar.Brand>
                        <a href="#">APITest</a>
                      </Navbar.Brand>
                    </Navbar.Header>
                    <Nav>
                      <NavItem eventKey={1} href="#">New user
                      </NavItem>
                      <NavItem eventKey={2} href="#">Create New User</NavItem>
                      <NavDropdown eventKey={3} title="Dropdown" id="basic-nav-dropdown">
                        <MenuItem eventKey={3.1}>Action</MenuItem>
                        <MenuItem eventKey={3.2}>Another action</MenuItem>
                        <MenuItem eventKey={3.3}>Something else here</MenuItem>
                        <MenuItem divider />
                        <MenuItem eventKey={3.3}>Separated link</MenuItem>
                      </NavDropdown>
                    </Nav>
                </Navbar>
            </div>

        )
    }
}
从“React”导入React;
从“反应路由器”导入{Link};
从“镭”进口镭;
从“引导网格反应”导入网格;
从“react bootstrap”导入*作为引导;
导出默认类布局扩展React.Component{
构造函数(){
超级();
this.state={};
}
render(){
设{Nav,Navbar,NavItem,NavDropdown,MenuItem}=bootstrap;
返回(
新用户
创建新用户
行动
另一个动作
还有别的吗
分离环
)
}
}
然而,这给了我一个错误

未捕获错误:不变冲突:元素类型无效: 应为字符串(用于内置组件)或类/函数(用于 复合组件)但得到:未定义。检查的渲染方法
布局

以及警告:

警告:React.createElement:类型不应为null,未定义, 布尔值,或数字。它应该是字符串(对于DOM元素)或 ReactClass(用于复合组件)。检查的渲染方法
布局

我也试过使用
从'react bootstrap'导入{Nav、Navbar、NavItem、NavDropdown、MenuItem}
但它也不起作用。我如何使用
Navbar
肯定有问题,因为普通div的渲染效果很好


非常感谢您的帮助。

经过长时间的努力,我终于让它工作了。
导航栏上方的额外div

这是我最后的工作代码:

import React from 'react';
import { Link } from 'react-router';
import Radium from 'radium';
import Grid from 'bootstrap-grid-react';
import {Nav, Navbar, NavItem, NavDropdown, MenuItem} from "react-bootstrap";


export default class Layout extends React.Component {

    constructor() {
        super();
        this.state = {};
    }

    render() {
        return (
                <Navbar>
                    <Navbar.Header>
                      <Navbar.Brand>
                        <a href="#">APITest</a>
                      </Navbar.Brand>
                    </Navbar.Header>
                    <Nav>
                      <NavItem eventKey={1} href="#">New user
                      </NavItem>
                      <NavItem eventKey={2} href="#">Create New User</NavItem>
                      <NavDropdown eventKey={3} title="Dropdown" id="basic-nav-dropdown">
                        <MenuItem eventKey={3.1}>Action</MenuItem>
                        <MenuItem eventKey={3.2}>Another action</MenuItem>
                        <MenuItem eventKey={3.3}>Something else here</MenuItem>
                        <MenuItem divider />
                        <MenuItem eventKey={3.3}>Separated link</MenuItem>
                      </NavDropdown>
                    </Nav>
                </Navbar>

        )
    }
}
从“React”导入React;
从“反应路由器”导入{Link};
从“镭”进口镭;
从“引导网格反应”导入网格;
从“react bootstrap”导入{Nav、Navbar、NavItem、NAVDROPOLDOWN、MenuItem};
导出默认类布局扩展React.Component{
构造函数(){
超级();
this.state={};
}
render(){
返回(
新用户
创建新用户
行动
另一个动作
还有别的吗
分离环
)
}
}

我仍然不知道将导航栏包装到div中时出错的原因。请随意评论任何解释。

在处理此问题太久之后,我发现问题在于您使用的react router中的链接组件。我不完全确定错误的具体细节,但有一个解决方案。不要使用Link而是使用react引导路由器提供的LinkContainer组件

从react路由器引导文档:

npm i -S react-router-bootstrap
在代码使用中:

<LinkContainer to={{ pathname: '/foo', query: { bar: 'baz' } }}>
  <Button>Foo</Button>
</LinkContainer>

从“react bootstrap”导入{Nav、Navbar、NavItem、NavDropdown、MenuItem}
效果非常好。@MatthewHerbst没有。我也试过了。还是有同样的错误。