我正在尝试在我的输入元素上为我的收音机和复选框创建一个:indeterminate
属性。
我发出以下错误:
Unknown prop `indeterminate` on <input> tag. Remove this prop from the element
是否可以创建新道具或是否完全锁定?
答案 0 :(得分:1)
只需将输入包装到另一个可以接受indeterminate
道具的组件中:
const IndeterminateInput = React.createClass({
render() {
// Create props clone
const cleanProps = Object.assign({}, this.props);
delete cleanProps['indeterminate'];
return <input ref="input" {...cleanProps}/>
},
updateInput: function () {
this.refs.input.indeterminate = Boolean(this.props.indeterminate);
},
componentDidMount() {
// Initial render
this.updateInput();
},
componentDidUpdate() {
// Props change
this.updateInput();
}
});
然后您可以将此组件用作包装器:
<IndeterminateInput type="checkbox" indeterminate />
请注意,即使在HTML indeterminate
中也不是有效的属性。您必须手动更新DOM:
<!-- This does not work! -->
<input type="checkbox" indeterminate>