我試圖讓這個表單工作,但是當我嘗試鍵入表單域時,沒有任何反應。如何使用onChange在Reactjs中使用多個表單字段?
起初,我輸入的文本會同時出現在字段上,然後我改變了一些東西。
現在完全不工作...
我想,這是一個的onChange問題,但我不知道。
下面是代碼:
handleChange = (event) => {
let newState = {};
newState[event.target.name] = event.target.value;
this.setState(newState);
}
handleSubmit = (event) => {
event.preventDefault();
this.setState({
title: '',
description: '',
dueDate: '',
assignee: '',
items: [...this.state.items, this.state.title, this.state.description,
this.state.dueDate, this.state.assignee]
});
}
render() {
return (
<div>
<button onClick={this.openModal}>Add a Task</button>
<ReactModal
isOpen={this.state.modalIsOpen}
onRequestClose={this.closeModal}
>
<div className='modalDialog'>
<form className="App" onSubmit={this.handleSubmit}>
Title: <input value={this.state.title} onChange={this.handleChange} />
Description: <input value={this.state.description} onChange={this.handleChange} />
Due Date: <input value={this.state.dueDate} onChange={this.handleChange} />
Assignee: <input value={this.state.assignee} onChange={this.handleChange} />
<button>Submit</button>
</form>
<button onClick={this.closeModal}>X</button>
</div>
</ReactModal>
<List items={this.state.items} />
</div>
);
}
}
const List = props => (
<ul>
{props.items.map((item,index) => <li key={index}>{item}</li>)}
</ul>
);
export default App;
感謝您的幫助!
爲輸入添加名稱prop並重試。 – bennygenel
你是否正確地綁定你的功能? – Andy
我推薦使用React.createClass()來避免綁定的需要。 –