首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用变量在下拉列表中设置选项

如何用变量在下拉列表中设置选项
EN

Stack Overflow用户
提问于 2020-06-12 04:15:32
回答 1查看 172关注 0票数 0

我正在做一个项目,尝试用从请求到API的对象数组设置下拉列表的选项。问题是,当我用变量的映射设置选项(键、值、文本)时,就会出现错误。所以我认为这样做是不对的。你能帮我知道在这种情况下该怎么办吗?

这是我的代码:

代码语言:javascript
复制
import { Dropdown } from 'semantic-ui-react';

type formProps = {
    funcionCierre: any
    carrera: any;
    nombre1: any;
}


const Estudiantes: React.FC<formProps> = (props: formProps) => {

const [area, setArea] = useState<any[]>([]);


useEffect(() => {
    console.log(props.carrera);
    axios.get('http://localhost:8003/skill?carrera_id=' + props.carrera + '&tipo_id=1')
        .then(result => {
            console.log(result);
            setArea(result.data);              //here is where i'm capturing my array of options
            console.log(area);
        }

        ).catch(error => {
            console.log(error);
        });

}, [area.length]);


return (
                                <Dropdown
                                placeholder='Area'
                                search
                                selection
                                options={area.map(ar => (
                                    key: ar.skil_id,             //here is where i'm trying to set the options 
                                    value: ar.skill_id,
                                    text: ar.nombre
                                ))}
                            />)

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-12 04:39:44

您正在从您的{}电话中丢失area.map(ar => (...))。应该是area.map(ar => ({...}))

代码语言:javascript
复制
const Dropdown = (props) => <div>{JSON.stringify(props.options)}</div>;

const Estudiantes = (props) => {
  const [area, setArea] = React.useState([]);

  React.useEffect(() => {
    Promise.resolve([{skill_id: 1, nombre: 'one'}, {skill_id: 2, nombre: 'two'}])
      .then(result => setArea(result))
  }, [area.length]);


  return (
    <Dropdown
      placeholder='Area'
      options={area.map(ar => ({
        key: ar.skil_id,
        value: ar.skill_id,
        text: ar.nombre
      }))}
    />
  )
}

ReactDOM.render(<Estudiantes />, document.getElementById("app"));
代码语言:javascript
复制
<script src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<div id="app"></div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62337408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档