【问题标题】:Material UI Select not showing options材质 UI 选择不显示选项
【发布时间】:2021-01-14 11:06:17
【问题描述】:

我有一个组件,在 componentDidMount 方法中,我从后端获取信息并将其置于组件的状态中。但是,我必须更改响应才能使用来自 Material UI 的 Select Component 上后端的对象。 我是这样做的:

var toAdd = []
axios.get(...).then(response.data.forEach(p => toAdd.push({id: p.name, value: p.name}))})
...
this.setState({schemas: toAdd})

然后,在渲染方法上,我将模式从状态发送到表单组件。表单本身也有一组带有选择组件的输入字段。

我有以下警告:

Material-UI:您为 select (name="schema") 组件提供了超出范围的值 undefined。 考虑提供与可用选项之一或“”匹配的值。 可用值为 ""。

我做了console.log,我得到的第一个值是一个数组[],但里面有对象。在输入字段上写了一些东西后,数组变为 [{...}] 然后 Select 可以显示我想要的选项。第一个数组 [] 不为空,如果我在控制台上打开它,里面有一个对象。 [{...}] 也是如此。是不是我做错了什么?

【问题讨论】:

    标签: reactjs material-ui


    【解决方案1】:

    为什么不使用组件状态,以便在像这样从 API 获取数据时获取数据。

      state={toAdd:[]}
    

    然后在获取数据时,您只需像这样设置您的状态 this.setState({toAdd:... response.data.map(v=> {return{id:v.name,value:v.value}})

    【讨论】:

    • 谢谢@Ahmed Muhammed Elsaid,我按照你的建议做了,它奏效了。我有你之前建议的状态......我改变以检查它为什么不工作但下半部分解决了我的问题。再次感谢您!
    • 随时欢迎您@Goncalo 我们随时为您提供帮助
    猜你喜欢
    • 2018-12-09
    • 2019-07-16
    • 1970-01-01
    • 2019-04-27
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 2022-01-02
    相关资源
    最近更新 更多