javascript - ReactJS,如何从 onChange 下拉列表更改表单类型

标签 javascript reactjs ecmascript-6

我正在学习ReactJS,我有来自semantic-ui的下拉菜单,我希望它添加onChange事件。当下拉菜单改变时,下面的表格也会改变。是否可以?有人知道怎么做吗?

这是我的代码。

layout

    class EditForm extends React.Component {
    componentWillMount() {
        this.setState({
          options: [
            { key: 1, text: 'Input', value: '1' },
            { key: 2, text: 'Dropdown', value: '2' },
            { key: 3, text: 'Radio Boxes', value: '3' },
            { key: 4, text: 'Checkboxes', value: '4' },
            { key: 5, text: 'Paragraph', value:'5'},
          ],
          selected: ['0'],
        });
      }

      handleChange = (e, { value }) => this.setState({
         value
       })
      render() {
        const { value } = this.state
      return(
          <Segment clearing>
              <Container textAlign='right'>
                  <Dropdown selection
                    onChange={this.handleChange}
                    options={this.state.options}
                    value={value}
                    defaultValue={this.state.selected}
                  />
              </Container>
              <Form.Group widths='equal'>
            <Form.Field>
                <Input
                style={{width:'480px'}}
                />
            </Form.Field>
            <Form.Field >
              <Button animated='vertical' floated='right' >
                <Button.Content hidden>Delete</Button.Content>
                <Button.Content visible>
                  <Icon name='trash outline' />
                </Button.Content>
              </Button>
              <Button animated='vertical' floated='right'>
                <Button.Content hidden>Copy</Button.Content>
                <Button.Content visible>
                  <Icon name='copy' />
                </Button.Content>
              </Button>
            </Form.Field>
            </Segment>
        );
      export default EditForm;

我希望它根据所选值进行更改。如果选择下拉菜单。比下拉表单出现。等等。 是否可以?最好的方法是什么?谢谢。

最佳答案

您可以使用conditional rendering在渲染组件之前检查特定条件。

类似于:

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

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

关于javascript - ReactJS,如何从 onChange 下拉列表更改表单类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47593418/

相关文章:

javascript - jQuery 用于将一个日期选择器值填充到另一个日期选择器上

javascript - 在 componentDidMount() 中调用函数的问题

javascript - 映射两个数组并删除重复项,保留所有元素

javascript - 如何避免在 postgres 数据库中插入空值

javascript - Chartjs 嵌套饼图/ donut chart

javascript - 如何将 PivotItems 动态绑定(bind)到 html 页面

reactjs - Formik 字段中的空数据值会在控制台日志中引发警告

javascript - 用于查询更新的 Firestore 文档 ID

javascript - 仅更新非空字段 |对象传播

javascript - Webpack 无法加载json 文件,如何定位本地json 文件并使用http.get 和AngularJS 加载该文件