我无法得到"芯片"控制以纪念" X"像示例中的按钮:http://www.material-ui.com/#/components/chip
添加" onRequestDelete"属性确实添加" X"按钮,但点击它什么都不做。事实上,它似乎并没有徘徊在" X"按钮本身会触发其悬停效果(即整个芯片具有悬停效果,并且按钮本身应该具有悬停效果 - 它似乎不会发生按钮的悬停效果)。这就像我无法获得按钮的焦点。
注意:如果我点击芯片然后按"删除"关键," > IN DELETE"警报。我已经注意到了类似的行为,因为我也在尝试使用材料-ui-chip-input," Backspace"努力删除芯片,但我永远不能使用" X"按钮(一个或多个)。
基本示例:
import React from 'react';
import Chip from 'material-ui/Chip';
class MyChip extends React.Component {
constructor(props) {
super(props);
this.delete = this.delete.bind(this);
}
delete(e) {
alert(" > IN DELETE"); // Does not fire on button click (except when I hit "Delete" key, see above explanation)
}
render() {
return <Chip key={0} onRequestDelete={this.delete}>testy</Chip>;
}
}
相关的package.json依赖项:
"material-ui": "^0.16.7",
"material-ui-chip-input": "^0.12.1",
"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-tap-event-plugin": "^2.0.1",
答案 0 :(得分:2)
我有同样的问题。对我来说,修复是在'react-tap-event-plugin'上添加了一个缺少的依赖。
您可以在http://www.material-ui.com/#/get-started/installation
找到官方文档相关部分是:
import injectTapEventPlugin from 'react-tap-event-plugin';
// Needed for onTouchTap
// http://stackoverflow.com/a/34015469/988941
injectTapEventPlugin();
您的package.json依赖项中似乎有插件,但请确保您正在导入并初始化它。
答案 1 :(得分:1)
删除功能似乎不存在。请尝试在Chip点击事件上绑定它:
return <Chip key={0} onRequestDelete={this.delete.bind(this)}>testy</Chip>;
答案 2 :(得分:1)
我在一个项目中遇到了同样的问题。问题是我们在全局重置样式表中将<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="form-database-settings">
<label for="database_section">Database Settings</label>
<form id="database_section" class="form-settings">
</form>
</div>
样式应用于所有pointer-events: none
。删除此错误对我来说就是一个问题。
答案 3 :(得分:0)
通过这种方式,它可以在移动设备和台式机上运行。 对我来说,简单的onRequestDelete在移动设备上不起作用 但是我猜较新版本的material-ui可以解决此问题。
<Chip deleteIcon={<CloseIcon onClick={this.delete} />}>
答案 4 :(得分:0)
确保传递函数而不是调用函数:
onDelete={() => handleDelete()}
答案 5 :(得分:0)
就我而言,这有帮助(显然是 onClick 函数的问题):
<RawChipInput
... other Props
chipRenderer={(
{
value,
isFocused,
isDisabled,
isReadOnly,
handleClick,
handleDelete,
className,
},
key
) => (
<Chip
key={key}
className={className}
onDelete={handleDelete}
// onClick={handleClick}
label={value}
/>
)}
/>