如何在 ReactJs 中打印出一组用户输入
How to print out an array of user inputs in ReactJs
目前,我的代码将打印出用户在提交后在输入框中键入的内容。如果我输入 'Dave',它就会被打印出来。如果我然后键入 'Paul'。 Paul 替换了 Dave 被输出的地方。我想要一种方法,如果我输入另一个名字而不是替换它,它会在下面无限次地打印出来。我正在考虑使用数组而不是当前字符串,但不确定如何执行此操作。到目前为止,这是我的代码:
var ToDoForm = React.createClass({
getInitialState: function() {
return {text: '', submittedValue: ''};
},
handleChange: function(event) {
this.setState({text: event.target.value});
},
handleSubmit: function(e) {
e.preventDefault();
this.setState({submittedValue: this.state.text});
console.log("ToDO: " + this.state.text);
},
render: function() {
return (
<div>
<h1> todos </h1>
<form className="todoForm" onSubmit={this.handleSubmit}>
<input
type="text"
placeholder="Type out a task"
value={this.state.text}
onChange={this.handleChange}
/>
<input
type="submit"
value="Submit todo"
/>
</form>
<h2> Data should appear here </h2>
<p>{this.state.submittedValue}</p>
</div>
);
}
});
到目前为止 text
被分配给 submittedValue
然后提交的值被打印出来。
我已经开始使用这个
getInitialState: function() {
return {text: '', submittedValue: []};
},
但现在我不知道下一步该怎么做
Once sumittedValue
是状态数组。你应该能够 push
到它:
handleSubmit: function(e) {
e.preventDefault();
this.state.subittedValue.push(this.state.text);
this.setState({submittedValue: this.state.subittedValue});
console.log("ToDO: ", this.state.submittedValue);
},
当然你必须遍历数组(map
)才能渲染:
<h2> Data should appear here </h2>
{this.state.submittedValue.map(
function(value, i) {
return (<p key={'val-' + i}>{value}</p>);
}
)}
需要 key
来唯一标识循环 <p>
。否则,渲染时会显示警告。
目前,我的代码将打印出用户在提交后在输入框中键入的内容。如果我输入 'Dave',它就会被打印出来。如果我然后键入 'Paul'。 Paul 替换了 Dave 被输出的地方。我想要一种方法,如果我输入另一个名字而不是替换它,它会在下面无限次地打印出来。我正在考虑使用数组而不是当前字符串,但不确定如何执行此操作。到目前为止,这是我的代码:
var ToDoForm = React.createClass({
getInitialState: function() {
return {text: '', submittedValue: ''};
},
handleChange: function(event) {
this.setState({text: event.target.value});
},
handleSubmit: function(e) {
e.preventDefault();
this.setState({submittedValue: this.state.text});
console.log("ToDO: " + this.state.text);
},
render: function() {
return (
<div>
<h1> todos </h1>
<form className="todoForm" onSubmit={this.handleSubmit}>
<input
type="text"
placeholder="Type out a task"
value={this.state.text}
onChange={this.handleChange}
/>
<input
type="submit"
value="Submit todo"
/>
</form>
<h2> Data should appear here </h2>
<p>{this.state.submittedValue}</p>
</div>
);
}
});
到目前为止 text
被分配给 submittedValue
然后提交的值被打印出来。
我已经开始使用这个
getInitialState: function() {
return {text: '', submittedValue: []};
},
但现在我不知道下一步该怎么做
Once sumittedValue
是状态数组。你应该能够 push
到它:
handleSubmit: function(e) {
e.preventDefault();
this.state.subittedValue.push(this.state.text);
this.setState({submittedValue: this.state.subittedValue});
console.log("ToDO: ", this.state.submittedValue);
},
当然你必须遍历数组(map
)才能渲染:
<h2> Data should appear here </h2>
{this.state.submittedValue.map(
function(value, i) {
return (<p key={'val-' + i}>{value}</p>);
}
)}
需要 key
来唯一标识循环 <p>
。否则,渲染时会显示警告。