我知道这个问题之前已经被问过了,但我已经尝试了所有可以找到的解决方案,并且在浪费了几天的时间之后,我实际上就是在哭泣。我究竟做错了什么?React - 为什么输入字段仍然只读(即不可编辑),即使我已添加onChange?
输入字段仍然是readonly
而onChange
不会触发,尽管我不断尝试将它变成像最基本的文本输入字段一样行事。
这里是我的代码:
import React, { Component, PropTypes } from 'react';
export default class Contact extends Component {
constructor(props) {
super(props);
this.state = { name: '' };
}
handleChange(e) {
this.setState ({ name: e.target.value });
}
render() {
return (
<div>
<form>
<input
type = "text"
value = { this.state.name }
onChange = { this.handleChange.bind(this) }
/>
</form>
</div>
);
}
}
编辑:我刚刚意识到,它的工作是只要我添加<Contact />
到不调用componentDidMount()
组件的预期。如果有人能够分解为什么会使输入字段为只读的,即调用componentDidMount()
以某种方式干扰onChange
或setState
,那将会非常有用。
编辑2:componentDidMount()
似乎只是问题,因为我调用它的组件是那些包含我试图用z-index分层的转换/动画的组件。事实证明,即使输入看起来完全没有遮挡,父div上的负Z索引也可以禁止输入字段,因为您无法点击文本字段。
它对我来说就像一个魅力。控制台中是否有错误? – martriay
它在我的设备中看起来不错。我想你需要检查控制台。 –
我没有在控制台D中发现任何错误: 我刚刚意识到,如果我从没有componentDidMount()的模块中调用 ,它就会起作用。这是否会强制输入字段为只读? –
caitbun