这是我试图创建的表:

enter image description here

当我更改下拉栏的值时,该值变得未定义,我不明白为什么.但最初,当我单击submit时,它会工作,并弹出alert ,其中包含我在this.state中设置的两个默认值.

这是我更改SDG时alert 的外观:

enter image description here

代码如下:

import React from 'react'

class Dropdown extends React.Component {
    constructor(props) {
      super(props);
      this.state = {
        sdg: 'SDG 1: No Poverty',
        assignment_type: 1
    };
  
      this.handleSDGChange = this.handleSDGChange.bind(this);
      this.handleAssignmentChange = this.handleAssignmentChange.bind(this);
      this.handleSubmit = this.handleSubmit.bind(this);
    }
    
    // Handling all 3 input changes
    handleSDGChange(event) {
      this.setState({sdg: event.target.sdg});
    }

    handleAssignmentChange(event) {
        this.setState({assignment_type: event.target.assignment_type});
    }

    // Handling all 3 input submissions
    handleSubmit(event) {
        console.log(this.state.sdg)
      alert(this.state.sdg + '--- Assignment Type: ' + this.state.assignment_type);
      event.preventDefault();
    }

    render() {
      return (
        <form onSubmit={this.handleSubmit}>
            <label>SDG:</label>
            <select value={this.state.sdg} onChange={this.handleSDGChange}>
              <option value="SDG 1: No Poverty">SDG 1: No Poverty</option>
              <option value="SDG 2: Zero Hunger">SDG 2: Zero Hunger</option>
              <option value="SDG 3: Good Health & Well Being">SDG 3: Good Health & Well Being</option>
            </select>

            <label>Assignment Type:</label>
            <select value={this.state.assignment_type} onChange={this.handleAssignmentChange}>
              <option value="1">1: Discussion Project</option>
              <option value="2">2: PDF Case study</option>
              <option value="3">3: Community Project</option>
            </select>

            <input type="submit" value="Submit" />
        </form>
      );
    }
  }
export default Dropdown

推荐答案

你想把event.target.sdgevent.target.assignment_type改成event.target.value.event.target没有这些属性,这些只是您在this.state中定义的变量,如果您想访问每个处理程序的事件值,您可以使用.value.

Javascript相关问答推荐

Express.js:以块形式发送响应

错误:找不到react-redux上下文值;请确保该组件包装在React原生Expo应用程序中的提供者中

如何在react + react路由域名中使用DeliverBrowserRouter?

Vue Quill css仅应用于我的第一个Quill Editor组件+如何自定义工具栏

为什么getRecord()会因为与_logger相关的错误而失败?(使用Hedera SDK)

Phaser 3 console. log()特定游戏角色的瓷砖属性

当点击注册页面上的注册按钮时,邮箱重复

无法访问Vue 3深度监视器中对象数组的特定对象值'

还原器未正确更新状态

当id匹配时对属性值求和并使用JavaScript返回结果

对网格项目进行垂直排序不起作用

JQuery Click事件不适用于动态创建的按钮

如何发送从REST Api收到的PNG数据响应

JavaScript不重定向配置的PATH

如何在Press上重新启动EXPO-AV视频?

为什么在函数中添加粒子的速率大于删除粒子的速率?

JS Animate()方法未按预期工作

AG-GRIDreact 显示布尔值而不是复选框

调用特定数组索引时,为什么类型脚本不判断未定义

需要RTK-在ReactJS中查询多个组件的Mutations 数据