因此,我尝试向React-Select组件显示Amazon国家a地区API,我尝试了许多不同的方法,但结果只会在Select组件上得到一个空白页面或白色名单
下面的代码只有Axios方法来调用API。
如何才能在Select组件上显示API数据?
下面是我的Form.jsx组件:
import { useState, useEffect } from 'react';
import '../App.css';
import Form from 'react-bootstrap/Form';
import Col from 'react-bootstrap/Col';
import Row from 'react-bootstrap/Row';
import Button from 'react-bootstrap/Button';
import Select from 'react-select';
import Axios from 'axios';
function Forms() {
const [countries, setCountry] = useState([])
Axios.get(`https://amazon-api.sellead.com/country`)
.then(res => {
const countries = res.data;
console.log(countries)
})
return (
<Form>
<Row className="mb-3">
<Form.Group as={Col} controlId="formGridEmail">
<Form.Control type="text" name = "name" placeholder="Nome" />
</Form.Group>
<Form.Group as={Col} controlId="formGridPassword">
<Form.Control type="email" name = "email" placeholder="E-mail" />
</Form.Group>
<Form.Group as={Col} controlId="formGridPassword">
<Form.Control type="text" name = "cpf" placeholder="CPF" />
</Form.Group>
<Form.Group as={Col} controlId="formGridPassword">
<Form.Control type="text" name = "tel" placeholder="Telefone" />
</Form.Group>
<Form.Label>País</Form.Label>
<Form.Group as={Col} controlId="formGridPassword">
<Select
/>
</Form.Group>
<Form.Label>Cidade</Form.Label>
<Form.Group as={Col} controlId="formGridPassword"> <br/>
<Select
/>
</Form.Group>
<Button variant="primary" type="submit">
Enviar
</Button>
</Row>
</Form>
);
}
export default Forms;
2条答案
按热度按时间j8yoct9x1#
useState([])
中更新它。useEffect()
挂钩,其中[]
是一个空数组,作为依赖项,因此它将只在初始渲染时调用一次处理API的函数。应用程序js
表单.js
您也可以访问codesandbox上的工作代码。以下是输出:
![](https://i.stack.imgur.com/9YTzi.png)
v6ylcynt2#
您所做的只是将数据记录到控制台(并隐藏一个变量):
如果需要在state中设置数据,请在state中设置它(并且您根本不需要局部变量):
您还从
<Select>
组件中删除了该道具。显然,您需要将其恢复:顺便说一句......名字很重要。这里有一个复数不一致的地方:
最好保持名称的一致性和意义,否则在使用数据时会混淆。由于这是一个值数组,因此请保持复数形式: