简体   繁体   English

如何使用 reactJS 根据下拉选择更改表单字段

[英]How can I change form fields based on dropdown selection with reactJS

In my dropdown I have two options, Yes or No I want one component to render when user select Yes and other to another component to render if user selects No. Also I want when page refresh, no options should be shown on page在我的下拉列表中,我有两个选项,是或否我希望一个组件在用户 select 是时呈现,如果用户选择否,则另一个组件呈现给另一个组件。另外我希望在页面刷新时,页面上不应显示任何选项

Check Image检查图像

How can I achieve my goal?我怎样才能实现我的目标? I am sharing my code below我在下面分享我的代码

Here is the dropdown fields, 
const CustomTimings=[
  {label:'Yes', value: 1},
  {label:'No', value: 2}
]

const DateAndTime = () => (
      <div>
        {CustomTimings === 'Yes'
        ? <CustomeTimeYes />
        : <CustomeTimeNo />
    }
return
<div className="input-field">
            <div class="row">
              <div class="col-4">
              <label htmlFor="customerype">Customer Type</label><br />
              <Select options={CustomerType} onChange={this.handleChangeCT} value={this.state.CustomerType} />
              </div>
              <div class="col-4">
              <label htmlFor="learning">Do you have custom timings</label><br/>
              <Select options={CustomTimings} onChange={this.handleChangeCTime} value={this.state.CustomTimings} />
              </div>
            </div>
          </div><br />
          <div>
          {DateAndTime()}
          <br />
          </div>

Can somebody explain what I am doing wrong here, either it is showing both components or any one and not changing on refresh有人可以解释我在这里做错了什么吗,要么是显示两个组件,要么是任何一个组件,并且在刷新时没有改变

You can work with conditional rendering where you check for a specific condition before render your component.您可以使用条件渲染,在渲染组件之前检查特定条件。

render() {
const { value } = this.state;

return (
   <div>
       {value === 'dropdown' && <Component1>...</Component1>}
       {value === 'text' && <Component2></Component2>}
       {value === 'checkboxes' && <Component3></Component3>}
       ...
   </div>
  )
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM