gpt4 book ai didi

javascript - 如何使用 react-select 和 react-bootstrap 来获取值

转载 作者:行者123 更新时间:2023-12-04 07:56:39 25 4
gpt4 key购买 nike

我正在用 ReactJS 开发一个应用程序,我有以下代码:

import React, { useState, useEffect } from "react";
import {Form } from "react-bootstrap";
import Select from "react-select";

const App = () => {

const [validated, setValidated] = useState(false);

const [select, setSelect] = useState({
name: "",
category: ""
});

const handleChange = e => {
const {name, value} = e.target;
setSelect(prevState => ({
...prevState,
[name]: value
}));
};

const [data, setData] = useState([]);
...
/* get data */
...

const categories = data.map((item) => ({ value: item.id, label: item.Name }));

return (
<div className="app">
<Form noValidate validated={validated}>
<Form.Row>
<Form.Group as={Col} md="4" controlId="validationCustom01">
<Form.Label>Name</Form.Label>
<Form.Control
required
name="name"
type="text"
placeholder="Name"
onChange={handleChange}
/>
<Form.Control.Feedback type="invalid">Check!</Form.Control.Feedback>
<Form.Control.Feedback>Ok!</Form.Control.Feedback>
</Form.Group>
<Form.Group as={Col} md="4" controlId="validationCustom02">
<Form.Label>Category</Form.Label>
<Form.Control
required
name="category"
as="select"
placeholder="Category"
onChange={handleChange}
>
<Select
options={categories}
defaultValue={true}
onChange={handleChange}
name="category"
id="search-select"
/>
</Form.Control>
<Form.Control.Feedback type="invalid">Check!</Form.Control.Feedback>
<Form.Control.Feedback>Ok!</Form.Control.Feedback>
</Form.Group>
</Form.Row>
</Form>
</div>
);
}

export default App;
我希望能够使用 react-select连同 react-bootstrap如上图所示。
我需要 Select组件以适应代码,以便我可以使用 react-bootstrap验证并选择/输入所有数据以便能够插入它,我需要按如下方式传递这些数据,例如:
console.log(select);

{name: "", category: ""}
name: "Name"
category: "Category"
__proto__: Object
我该怎么做?我需要它,否则我必须使用
<Form.Control
required
name="category"
as="select"
placeholder="Category"
onChange={handleChange}
>
<option hidden value="" selected>Select</option>
{
categories.map(elem => {
return <option ... >Name</option>
})
}
</Form.Control>
并且选择仍然没有样式。
enter image description here
谢谢!

最佳答案

我假设您只是想在您的应用程序中使用 react-select。这应该很简单。我为您创建了一个使用 react-select 的专用元素:

const SelectBox = ({ options }) => {
const [optionSelected, setSelectedOptions] = useState([]);

const handleChange = (selected) => {
setSelectedOptions(selected);
};

return (
<Select
options={options}
isLoading={!options}
closeMenuOnSelect={true}
onChange={handleChange}
value={optionSelected}
name={"your_select_name"}
/>
);
};
你可以像这样渲染它:
...
<SelectBox options={categories} />
...
沙盒: https://codesandbox.io/s/upbeat-torvalds-kzcug?file=/src/App.js

关于javascript - 如何使用 react-select 和 react-bootstrap 来获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66666946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com