我知道這個問題之前已經被問過了,但我已經嘗試了所有可以找到的解決方案,並且在浪費了幾天的時間之後,我實際上就是在哭泣。我究竟做錯了什麼?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