为什么在我的简单的react-bootstrap应用程序中没有按照react-bootstrap文档识别Form.Select?

MRo*_*uez 17 javascript reactjs react-bootstrap bootstrap-4 react-hooks

我是“带钩子的反应引导”新手,我正在创建一个简单的表单。我正在遵循react-bootstrap文档的示例,并且遇到了选择/选项表单元素的问题。常规文本输入字段正常呈现,不会出现错误。select 语句似乎把事情搞砸了。

这是我的代码:

import { Form, Button } from "react-bootstrap";

export default function FormComponentName(props) {
    return (
        <>
            <h1>Search Form</h1>

            <Form>

                <Form.Group className="mb-3" controlId="searchState">
                    <Form.Label>State</Form.Label>
                    <Form.Select defaultValue="State...">
                        <option>State...</option>
                        <option value="1">One</option>
                        <option value="2">Two</option>
                        <option value="3">Three</option>
                    </Form.Select>
                </Form.Group>
               <Button variant="primary" type="submit">
                    Search Data
                </Button>

            </Form>


        </>
    )

}

Run Code Online (Sandbox Code Playgroud)

这是纱线错误消息:

Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

Check the render method of `FormComponentName`.

Run Code Online (Sandbox Code Playgroud)

从控制台:

index.js:1 Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

Check your code at FormComponentName.js:14.
    at FormComponentName
Run Code Online (Sandbox Code Playgroud)

我是否需要安装额外的模块,或者是更明显的东西?

小智 28

Form.Select您可以使用以下代替:

<Form.Control as="select">...</Form.Control>
Run Code Online (Sandbox Code Playgroud)


MRo*_*uez 12

Form.Select 似乎是一个测试版功能,在当前的 bootstrap-react 生产版本中尚未实现。这就是上面的代码不起作用的原因。

  • 如果这是真的的话,这有点无用......他们的文档根本没有说明这一点。我遇到了与OP相同的错误。如果某个功能不起作用,他们不应该将其包含在文档中:https://react-bootstrap.github.io/components/forms/#forms-select (5认同)

小智 5

完整代码如下定义

 <Form.Group>
    <Form.Label>Status</Form.Label>
    <Form.Control as="select">
      <option>Active</option>
      <option>Inactive</option>
    </Form.Control>
  </Form.Group>
Run Code Online (Sandbox Code Playgroud)