0
我有一個表格中的數據輸入表格,根據表格中有多少列生成輸入。我努力分離輸入,但是當我改變一個值時,所有的輸入都會改變。有什麼方法可以區分它們,以便我可以在每個輸入中輸入不同的值。我正在使用React和flux。反應 - 區分表格中動態生成的輸入
這裏是我目前正與代碼:
import React from 'react';
import AppStore from '../../stores/AppStore';
export default class RowForm extends React.Component {
state = {input: ''};
onChange = (e) => {
this.setState({input: e.target.value});
console.log(input);
};
editStop =() => {
this.props.editStop();
};
handleSubmit = (e) => {
e.preventDefault();
let access_token = AppStore.getToken();
let id = AppStore.getTable().id;
this.props.handleSubmit(access_token, id);
};
render() {
let {input} = this.state;
let dataEntries = AppStore.getTable().columns; //this gets the amount of columns so I can map through them and generate the correct amount of inputs.
return (
<tr>
{dataEntries.map((element, index) => {
return (
<td key={index}><input type="text" className="form-control" id={element.id} placeholder="enter data" value={this.state.input} onChange={this.onChange} /></td>
);
})}
<td>
<button className="btn btn-default" onClick={this.editStop}><i className="fa fa-ban"></i>Cancel</button>
<button className="btn btn-success" onClick={this.handleSubmit}><i className="fa fa-check"></i>Save</button>
</td>
</tr>
);
}
}
任何幫助將不勝感激,尤其是例子!
感謝您的時間
我使用一些ES7 initialisers這就是爲什麼我不使用從ES6構造。不幸的是,我不得不一直建立在流量上,但是我試圖做到這一點,所以我可以開始使用redux。你的回答確實有幫助,但是在onChange事件中,如何將索引映射到列?當我運行我的構建任務時,我得到了一個錯誤?! – BeeNag
我更新了答案,以嘗試和幫助。您需要將AppStore映射到組件本地狀態。我已經向您展示瞭如何使用上述註釋完成此操作。我強烈建議儘可能從本地州遷移。祝你好運! – Mike
感謝您的有用答案Mike!我幾乎可以工作,但是當我嘗試輸入輸入數據時,它從多個輸入變爲單個輸入,你知道爲什麼會發生這種情況嗎? – BeeNag