reactjs - 无法读取自动完成 Material ui 上 null 的属性 'name'

标签 reactjs autocomplete material-ui frontend

当我单击带有 Material ui 的自动完成的清除十字按钮时,出现错误。 这是我的自动完成:

               <Autocomplete
                autoComplete
                fullWidth
                options={esportTeams.list}
                getOptionLabel={(option) => option.name ?? ""}
                className={classes.formControl}
                onChange={(e, value) => setFilter({ ...filter, team: value.name })}
                renderInput={(params) => <TextField {...params} fullWidth label="Teams" 
                variant="outlined" value={filter.team ?? ""} size="small" />}
                />

当我单击叉号以清除字段时,我收到此错误:无法读取 null 的属性“名称”,并且我已经测试了很多东西,但没有人工作...... 谢谢!

最佳答案

说明:

如果您深入思考该错误,当您按下 Autocomplete 组件内的 X 按钮时,它会触发 onChange 事件,因为它将值更改为 null

onChange={(e, value) => setFilter({ ...filter, team: value.name })}

对象是复杂的数据结构。 JavaScript 中最简单的对象是普通对象——键和关联值的集合:

let myObject = {
  companyName: 'Exploretale Technologies, OPC'
};

在某些情况下无法创建对象。对于这种情况,JavaScript 提供了一个特殊值 null — 表示缺少对象。

let myObject = null;

“null 是一个原始值,表示有意不存在任何对象值。”

这就是为什么你会遇到“TypeError:无法读取 null 的属性(读取“名称”)”

解决方案:

onChange={(e, value) => 
if(value === null) {
 //Just give a value to a value to avoid null
 //e.g. value = ""
}
setFilter({ ...filter, team: value.name })}

关于reactjs - 无法读取自动完成 Material ui 上 null 的属性 'name',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67500155/

相关文章:

javascript - setState 在事件函数内不起作用

javascript - 如何在 react.js 中检测父组件中的子渲染

javascript - 我应该在 React.js 函数组件中哪里进行 AJAX 和 API 调用?

javascript - 当用户在 Kendo 自动完成中按退格键时防止回发

java - eclipse Java 自动完成功能不起作用

html - 更改material-ui对话框显示的动画

reactjs - React Material-UI 菜单 anchor 被 react 窗口列表破坏

reactjs - redux 的好处

emacs - 我如何在 Emacs 中自动完成 IP 地址?

reactjs - 当我只单击其中的一个项目时,如何保持 Material-ui Select 打开