我有一個添加配方的表單,其中有配料按鈕。配方可以有許多成分。點擊該按鈕時,添加配料的輸入欄應出現在配料按鈕下方。我試圖做的是?單擊按鈕時添加輸入字段
import Input from './Input.jsx';
export default class Sell extends Component {
constructor()
{
super();
this.state = {
inputValues : {}
}
this.onHandleSubmit =this.onHandleSubmit.bind(this);
}
onChange(name, { target : { value } })
{
const inputValues = this.state.inputValues;
inputValues[name] = value;
this.setState({ inputValues })
}
onHandleSubmit()
{
console.log('clicked');
const name = `ingrediant-${Object.keys(this.state.inputValues).length}`;
let inputbox = <Input name={ name }
onChange={ this.onChange.bind(this, name)} />
}
onSubmit(event){
event.preventDefault();
}
render() {
return (
<div className="row">
<h2 className="flow-text text-center">Add Recipe</h2>
<form onSubmit={this.onSubmit} className="col offset-s4 s4">
<div className="row">
<div className="input-field col s12">
<input ref="name" id="name" type="text" className="validate flow-text" />
<label htmlFor="name">Name of Recipe</label>
</div>
</div>
<div className="input-field col s12">
<a onClick={this.onHandleSubmit} className="waves-effect waves-light btn btn-block"><i className="material-icons right">add</i>Ingredients</a>
</div>
</div>
{this.state.inputValues}
<div className="row">
<button className="waves-effect waves-light btn btn-block">Submit</button>
</div>
</form>
</div>
);
}
}
如何創建新的動態(不同的裁判爲新創建的輸入框)爲原料輸入欄點擊按鈕時?
爲什麼你需要裁判? –
@AvraamMavridis發送到服務器。因爲如果用戶添加了5個成分,那麼所有這5個成分應該有不同的參考發送到服務器。如果我錯了,請糾正我? – milan
我沒有看到它被使用過,你不會做任何'this.refs' –