加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactor---元数据驱动的表单

发布时间:2020-12-15 20:34:54 所属栏目:百科 来源:网络整理
导读:class NameForm extends React.Component { ? constructor(props) { ??? super(props); ??? this.state = { ????? metas:[ ??????? {type:"input",prop:"name",label:"name",defaultValue:"jy"} ????? ], ????? model:{}, ????? value: ‘‘ ??? }; ??? this

class NameForm extends React.Component {
? constructor(props) {
??? super(props);
??? this.state = {
????? metas:[
??????? {type:"input",prop:"name",label:"name",defaultValue:"jy"}
????? ],
????? model:{},
????? value: ‘‘
??? };
??? this.state.metas.map((item)=>{
????? this.state.model[item.prop]=item.defaultValue?item.defaultValue:null;
????? console.log(this.state);
??? });
??? this.handleChange = this.handleChange.bind(this);
??? this.handleSubmit = this.handleSubmit.bind(this);
? }

? /*handleChange(prop,event) {
??? console.log("xxxxxxxxxxxxxxxxxxxxxx");
??? console.log(prop);
??? this.setState({
????? model:{
??????? [prop]:event.target.value
????? }
??? });
? }*/

handleChange(event) {
??? console.log("xxxxxxxxxxxxxxxxxxxxxx");
??? console.log(prop);
??? this.setState({
????? model:{
??????? [event.target.name]:event.target.value
????? }
??? });
? }

? handleSubmit(event) {
??? alert(‘A name was submitted: ‘ + this.state.value);
??? console.log(this.state.model);
??? event.preventDefault();
? }

? render() {
??? var x=this.state.metas.map((item)=>
????????????? <label key={item.prop}>
????????????????? {item.label}
????????????????? //<input type="input" name={item.prop} value={this.state.model[item.prop]} onChange={(e)=>this.handleChange(item.prop,e)}></input>

????????????????? <input type="input" name={item.prop} value={this.state.model[item.prop]} onChange={(e)=>this.handleChange(item.prop,e)}></input>???????????? </label>?????????? );??? return (????? <form onSubmit={this.handleSubmit}>??????? {x}??????? <input type="submit" value="Submit" />????? </form>??? );? }}ReactDOM.render(? <NameForm />,? document.getElementById(‘root‘));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读