reactjs - Material-UI 选择 e.target.value 未定义

标签 reactjs material-ui

我在我的 React 项目之一中使用 Material-UI 的 Select 组件。我需要按组显示下拉数据,因此我使用 <MenuItem>缠绕<ListSubheader> .我很难获得我的 MenuItem 的值(value)s。如果我的代码有任何明显错误,请告诉我。

<FormControl>
    <InputLabel>Product type</InputLabel>
    <Select
    id="product-type"
    input={<Input id="grouped-select" />}
    value={this.state.productType}
    autoWidth={true}
    style={{ width: 200 }}
    onChange={(e, child) => {
        console.log(e.target.value); // undefined!
    }}
    >
    {this.state.productList.map((p, i) => {
        const list = p[1];

        let items = list.map((e, j) => {
        return (
            <MenuItem key={j} value={e.name}>
            {e.name}
            </MenuItem>
        );
        });

        return (
        <div>
            <ListSubheader key={i}>{p[0]}</ListSubheader>
            {items}
        </div>
        );
    })}
    </Select>
</FormControl>

最佳答案

原因e.target.value正如其他人所说,返回 undefined 是由于 MenuItem不是 Select 的直系 child .自 productList动态设置到下拉列表中,它必须以这种方式呈现:

ListSubheader0
   Item0
   Item1
ListSubheader1
   Item2
   Item3
   Item4
   ...
...

而不是包裹我的 ListSubheaderMenuItemdiv标签在哪里阅读target.value不可能,我返回了一个数组。

return [
    <ListSubheader key={i}>
        {p[0]}
    </ListSubheader>, 
    items
];

关于reactjs - Material-UI 选择 e.target.value 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58929085/

相关文章:

javascript - 将 react-markdown 与 Material-UI 表一起使用

reactjs - Material-UI Button 组件如何推断传递给 `component` prop 的组件的 props?

reactjs - @material-ui 与 Material-ui 之间的区别(不带 at 符号)

node.js - 将 React Starter Kit(由 Kriasoft 提供)部署到 Heroku

javascript - 冲突的服务器/客户端渲染和 Webpack 的本地 css 模块

javascript - React Native,onPress 不适用于从 fontAwesome 导入的图标

reactjs - 使用 React 的步进功能

google-maps - 缩放到指定标记react-native-maps

javascript - 如何在 Material UI 中更改 Toggle Switch 的大小

reactjs - 从单个文件导出的 Material UI v4 makeStyles 不会在刷新时保留样式