Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何渲染元素取决于react中的选择值_Django_Reactjs_Django Rest Framework - Fatal编程技术网

Django 如何渲染元素取决于react中的选择值

Django 如何渲染元素取决于react中的选择值,django,reactjs,django-rest-framework,Django,Reactjs,Django Rest Framework,我是react的新手,我想根据选择的值呈现不同的HTML元素 如果可能的话,将选定html中的数据发布到django模型 以下是我的代码: 类重新复制扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ 选中:“默认值” }; } setSelected=(事件)=>{ 让select=document.getElementById(“id_field1”); document.getElementById(“test”).innerHTML=selec

我是react的新手,我想根据选择的值呈现不同的HTML元素 如果可能的话,将选定html中的数据发布到django模型

以下是我的代码:

类重新复制扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
选中:“默认值”
};
}
setSelected=(事件)=>{
让select=document.getElementById(“id_field1”);
document.getElementById(“test”).innerHTML=select.value;
}
render(){
返回(
某物
未选择食物类型
汉堡
披萨
{
this.state.selected==“默认值”?
违约
:this.state.selected==“汉堡”?
汉堡
:比萨饼
}
添加到托盘中
);
}
}

您确实需要阅读react文档。和javascript文档

您的选择应如下所示:

  setSelected = event => {
      this.setState({ selected: event.target.value });
  }
类重新复制扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
已选择:“”
};
}
setSelected=(事件)=>{
this.setState({selected:event.target.value})
}
handleSubmit=(e)=>{
e、 预防默认值();
警报(this.state.selected)
}
render(){
返回(
某物
未选择食物类型
汉堡
披萨
{this.state.selected}
{this.state.selected===“”?
:this.state.selected==“汉堡”?
汉堡
:比萨饼
}
添加到托盘中
);
}
}

您正在使用react直接操作DOM?这是个大问题。我该怎么办?解决方案please@Alirezatafhim检查此解决方案,如果要将数据发布到handleSubmit函数中的后端调用api,请使用它。@vahid_akhtar onSubmit运行良好!,你能检查一下编辑吗?我还需要另一个代码!:)@Alirezatafhim检查这个,让我知道你想要什么?是的,类似这样,但例如,当用户单击burger时,它会显示burger Specific HTML元素。。。比萨饼或其他东西的渲染应该是这样的。。。对不起,我的英语不好:(@Alirezatafhim你想一次显示选定的项目,对吗?是的,类似的,当用户点击“选定”选项时,我需要它为他们在“食物分区”中显示选定的食物…你明白我的意思了吗?
class Resepy extends React.Component {
  constructor(props){
    super(props);
    this.state = {
        selected : ''
    };
  }

  setSelected = (event) => {
    this.setState({selected: event.target.value})
  }
  handleSubmit = (e) =>{
    e.preventDefault();
    alert(this.state.selected)
  }

  render() { 
       return (
            <div className="Resepy">
             <h1>Something</h1>
             <form onSubmit={this.handleSubmit}>
              <select id="id_field1" name="field1" 
                onChange={this.setSelected} value={this.state.selected}>
                  <option value="">Food type not selected</option>
                  <option value="burger">Burger</option>
                  <option value="pizza">Pizza</option>
                  </select>
                  <h3>{this.state.selected}</h3>
                  <div className="food">
                   {this.state.selected === "" ? 
                    <div className="default"></div>
                    : this.state.selected === "Burger" ?
                     <div className="burger">Burger</div>
                    :<div className="pizza">Pizza</div>
                    }
                  </div>
                  <button type="submit">Add to tray</button>
                  </form>
             </div>
        );
  }
}