reactjs - 材质 UI 选择不显示选项
问题描述
我有一个组件,在该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})
然后,在渲染方法上,我将模式从状态发送到表单组件。表单本身也有一组带有选择组件的输入字段。
我有以下警告:
undefined
Material-UI:您为 select (name="schema") 组件提供了超出范围的值。考虑提供与可用选项之一或“”匹配的值。可用值为“”。
我做了console.log,我得到的第一个值是一个数组[],但里面有对象。在输入字段上写一些内容后,数组变为 [{...}] 然后 Select 可以显示我想要的选项。第一个数组 [] 不为空,如果我在控制台上打开它,里面有一个对象。[{...}] 也是如此。有什么我做错了吗?
解决方案
当你像这样从 API 获取数据时,为什么不使用组件状态来获取数据。
state={toAdd:[]}
然后在获取数据时,您只需像这样设置您的状态
this.setState({toAdd:... response.data.map(v=> {return{id:v.name,value:v.value}})
推荐阅读
- javascript - 从 javascript 停止 npm 浏览器应用程序
- django - Shopify graphQL 查询
- python-2.7 - pygsheets set_dataframe 未被识别
- android - dlopen 失败有文本重定位
- png - 理解 IDAT,阅读 DEFLATE 的动态霍夫曼树
- sql-server - 需要一种编程方式来获取 SQL Server 内置函数的名称、参数和返回类型
- android - 如何在 FCM 中定位某个主题的用户细分?
- java - 在选项卡式活动中显示值
- r - 使用clusterR从大栅格中随机抽样
- html - CSS:让我的侧边栏不在我的其他内容之上