我知道以前有人问过这个问题,但我已经尝试了所有我能找到的解决方案,在浪费了几天时间之后,我真的要哭了。我究竟做错了什么?
尽管我越来越多地尝试诱使输入字段表现得像最基本的文本输入字段,但输入字段仍然存在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
or setState
?
编辑 2:componentDidMount()
似乎只是问题,因为我调用它的组件是包含我试图使用 z-index 分层的过渡/动画的组件。事实证明,父 div 上的负 z-index 可以通过阻止您单击文本字段来禁用输入字段,即使输入看起来完全没有遮挡也是如此。