Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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
Reactjs 更新子选择_Reactjs - Fatal编程技术网

Reactjs 更新子选择

Reactjs 更新子选择,reactjs,Reactjs,我是新的反应,我试图作出一个简单的动态形式与3选择 我的问题是,子选择的选项应该根据父选择中选择的选项填充 这是我的密码: var MySelect = React.createClass({ getInitialState: function() { return { value: 'select' } }, change: function(event){ this.setState({value: event.target.value}

我是新的反应,我试图作出一个简单的动态形式与3选择

我的问题是,子选择的选项应该根据父选择中选择的选项填充

这是我的密码:

var MySelect = React.createClass({
 getInitialState: function() {
     return {
         value: 'select'
     }
 },
 change: function(event){
     this.setState({value: event.target.value});
 },
 render: function(){
    return(
      React.createElement(
  'div',
  {  },
  React.createElement(
    'select',
    { id: this.props.id,
      onChange: this.change,
      value: this.state.value
     },
     React.createElement("option", null, "Yes"),
     React.createElement("option", null, "No"),
    this.props.title
  ),
  React.createElement(
    'select',
    { id: this.props.id,
      onChange: this.change,
      value: this.state.value
     },
     React.createElement("option", null, "Author1"),
     React.createElement("option", null, "Author2"),
    this.props.title
  ),
  React.createElement(
    'select',
    { id: this.props.id,
      onChange: this.change,
      value: this.state.value
     },
     React.createElement("option", null, "Book1"),
     React.createElement("option", null, "Book2"),
    this.props.title
  )
));
 }
});
所以如果我们选择Yes,我们有两个作者,如果我们选择author1,我们只能选择book1


如果选择author2,则只能选择book2而不能选择book1。如果选择“否”,则无法选择任何作者或书籍。我相信美国应该有一些东西,但我仍然无法从文件中得到要点

最好将其分解为一个组件流,而不是在单个组件中管理复杂状态机中的所有内容

  • 您可以将Author元素逻辑提取到新组件。如果第一个选择具有“是”,则渲染作者组件,否则不渲染

  • 在Author组件中,您应该管理作为状态选择的作者,并将该状态作为道具传递给Book组件

  • 在Book组件中,您可以根据道具中收到的作者呈现select菜单选项

  • 您还必须在Book component中使用
    组件WillReceiveProps
    ,以跟踪道具的更改


  • 我将用代码解释。您可以执行以下操作。您可以有3个布尔状态,一个指定给作者的选择列表,另两个指定给单个选项值(book1,book2)。根据用户在列表中选择的内容-是或否。 考虑下面的代码。 是/否选择列表的Onchange处理程序

                 If(event.target.value=="Yes")
                 {
                   this.setState({AuthorsSelectable:true,
                   book1Selectable:true,
                   book2Selectable:true
                   });
    
                }
                else{
                    this.setState({AuthorsSelectable:false,
                     book1Selectable:false,
                     book2Selectable:false
              });
    
                }
    
    现在,您将看到Author1/Author2列表的onchange处理程序

                 if(event.target.value="Author1"){
    
                this.setState({book1Selectable:true,
                book2Selectable:false
                });
    
                }
             else{
    
              this.setState({
    
                book1Selectable:false.
                book2Selectable:true
              });
    

    希望这有帮助

    谢谢你的建议。你能提供一些代码例如。我对州不太熟悉(这有助于解决问题)