我正在使用带有 Babel 和 Webpack 的 React JS。我的其他脚本即使是使用颜色module的脚本也一切正常,但是,我的一个脚本给了我以下错误:
指定的值“”不符合要求的格式。格式为“#rrggbb”,其中 rr、gg、bb 是两位十六进制数。
我的代码如下:
import React from 'react';
class EditDetails extends React.Component {
constructor(props) {
super(props);
this.state = {
bg: "#ffffff"
};
}
handleChange(event) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const id = target.id;
this.setState({
[id]: value
});
}
render() {
return (
<div>
<form>
<div>Background Colour:<input id="bg" type="color" onChange={this.handleChange.bind(this)} value="#dddddd" /></div>
</form>
</div>
)
}
}
export default EditDetails;
如果我value="#dddddd"
从我的输入标签中删除它,它实际上会给出两次相同的错误消息。
经过进一步调查,错误参考将我指向 ReactDOMInput.js 中的以下部分:
switch (props.type) {
case 'submit':
case 'reset':
break;
case 'color':
case 'date':
case 'datetime':
case 'datetime-local':
case 'month':
case 'time':
case 'week':
// This fixes the no-show issue on iOS Safari and Android Chrome:
// https://github.com/facebook/react/issues/7233
node.value = '';
node.value = node.defaultValue;
break;
default:
node.value = node.value;
break;
}
具体来说,它指的是第一node.value
行(或node.value
删除value
属性时的前两行)。
当我的颜色代码为正确的十六进制格式时,为什么会生成此错误?
注意:正确的颜色确实在颜色控件中正确设置。