我的 onChange 不适用于反应

2024-03-26

我已经关注了这个文档 https://facebook.github.io/react/docs/forms.html#why-select-value并使用 React 创建了一个选择标签。
我已经编辑了这个问题,如果我在选择中使用 className="browser-default" ,它就可以正常工作。但对于物化选择它不起作用。
onChange 事件在我的情况下不起作用。该函数不会被调用。

import React from 'react';

class Upload extends React.Component{
    constructor(props){
        super(props);
        this.state={
            degree:''
        }
        this.upload=this.upload.bind(this);
        this.degreeChange=this.degreeChange.bind(this);
    }
    componentDidMount() {
        $('select').material_select();
    }
    degreeChange(event){
        this.setState({degree:event.target.value});
        console.log(this.state.degree);
    }
    upload(){
        alert(this.state.degree);
    }
    render() {
        return (
            <div className="container">
            <form onSubmit={this.upload}>
                <div className="input-field col s4">
                        <select value={this.state.degree} onChange={this.degreeChange}>
                            <option value="" disabled>Choose Degree</option>
                            <option value="B.E">B.E</option>
                            <option value="B.Tech">B.Tech</option>
                        </select>
                </div>
                <div className="row center-align">
                    <input className="waves-effect waves-light btn centre-align" type="submit" value="Submit"/>
                </div>
            </form>
        </div>
        );
    }
}

我在这里没有收到任何错误,但我的 DegreeChange 函数没有被调用。我不明白我的错误是什么。


你的代码没有任何问题。你确定它不起作用吗?也许您假设设置状态是同步的,但事实并非如此。尝试记录target.value。您还可以在 setstate 的回调中打印状态值。

degreeChange(event){
    console.log(`event value is ${event.target.value}`);
    this.setState({degree:event.target.value}, () => {
        console.log(this.state.degree);
    });
}

小提琴你的确切代码 https://jsfiddle.net/jwm6k66c/2531/尝试改变周围的项目。你会看到那个州似乎落后了。那是因为您打印状态的那一刻尚未完成其渲染周期并且状态尚未更新。

小提琴我的改变 https://jsfiddle.net/jwm6k66c/2532/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的 onChange 不适用于反应 的相关文章

随机推荐

  • 如何在发布过程中跳过文件夹删除?

    我无法做到这一点 因此从 Visual Studio 发布不会删除服务器网站上的 App Data 文件夹 但我也希望它继续删除所有文件 该文件夹除外 以保持目录 干净 我已经在 csproj pubxml 中尝试过这个 以及它的更改 有一
  • iOS 4 构建 SDK

    我昨天安装了 iOS 4 SDK 我之前安装过 3 1 2 3 1 3 和 3 2 SDK 自从安装了 iOS 4 SDK 以来 我在 Xcode 中只有 3 2 和 4 0 可用 当我加载针对旧版本 例如 3 1 2 的 Xcode 项目
  • Actionscript 3 数学不一致

    我正在尝试在 Flex actionscript 3 中构建一个计算器 但使用 Math 类得到了一些奇怪的结果 trace 1 4 4 should be 1 but it is 0 9999999999999999 trace 1 5
  • 选择按午夜时间分组的数据

    我有一个像这样的表 ID TIMEVALUE 1 06 07 15 06 43 01 000000000 2 06 07 15 12 17 01 000000000 3 06 07 15 18 21 01 000000000 4 06 07
  • 使用recvfrom()和sendto()发送结构

    我在用C语言这是一个共同平台对于服务器和客户端 我有一个特定类型的结构 我想将其从服务器发送到客户端 For e g 服务器代码 necessary declarations struct hostent hp hp gethostbyna
  • MySQL 时区查询

    我有两个字段 time scan start and time scan end 时间戳字段 当我使用 PDO 打开与 MySQL 的连接时 我使用SET NAMES utf8 time zone 0 00 现在 当我在 MySQL 中执行
  • 多方面散点图ggplot2中不同的x和y轴尺度

    我用过lemon封装有ggplot2使用以下代码绘制带有回归和置信区间线的多方面散点图 library tidyverse library lemon Plotting ggplot data calibration aes Observe
  • dask 中不支持项目分配的解决方法

    我正在尝试将我的代码库从 numpy 数组转换为 dask 因为我的 numpy 数组超出了Memory Error限制 但是 我发现可变数组的功能尚未实现dask arrays所以我得到了 NotImplementedError Item
  • 谁能给我解释一下 C++ 异常规范吗?

    谁能解释一下 C 中使用的异常规范 它们什么时候使用 我很少看到它在代码中使用 使用异常规范的优点和缺点 优点 缺点 是什么 它们什么时候使用 我很少看到它在代码中使用 希望永远不会 因为它们在明年标准化的下一版本 C 中已被弃用 使用异常
  • 如何修复错误“您可能需要适当的加载程序来处理此文件类型”

    我有一个全新的 Laravel 安装 关于使用编译文件npm run dev VUE我收到文件错误 您可能需要适当的加载程序来处理此文件类型 当前没有配置加载程序来处理此文件 Laravel 版本 8 12 包 json devDepend
  • Facebook 评论镜像不起作用

    我一步一步做了这些 创建一个新的 Facebook 应用程序 应用程序 ID 544557495732050 创建一个新的 Facebook 页面 https www facebook com Pasha Electronic 502844
  • 每秒(或更短时间)检查 url 是否有效的最佳方法是什么,在 C# 窗口窗体应用程序 (.NET) 中使用 Task wait 或 ContinueWith

    我是 C Net 和 Visual Studio 2022 的新手 我想要实现的是每秒运行一个计时器来检查网站 url 是否有效 是否已启动 如果 url 可访问并且当前 WebView2 未显示该网站 那么它应该导航到该网站 如果它已经显
  • TypeScript 泛型:无效、从不或未定义? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 总是想知道这个问题 所以想要得到一个明确的答案并将其固定下来 我想做的是让编译器 语言服务 阅读器知道T应该什么都没有 空的 虚无 我想知道
  • 跨计算机快速同步 git 工作区

    我有一个使用 git 的个人项目 我经常在多台计算机上进行 hack 托管在 Github 上 因为我在家做这件事 所以经常被打扰 我正在发表声明 晚餐已经准备好了 否则我需要换尿布 当我重新开始编码时 我可能会使用另一台计算机 获取最新版
  • 如何在 iPhone 的自定义 UIView 上启用 UIDragInteraction

    我一直在尝试使用 Apple 的新 API 来启用自定义 UIView 上的拖动交互 我在使用 iPad 进行测试时成功地使其工作 但是当我在 iPhone 7 ios 11 beta 3 中运行相同的应用程序时 我无法拖动我的自定义 UI
  • SQL Server:将 bool 转换为整数

    为什么查询 SELECT CAST column LIKE string AS INT 100 return 关键字 AS 附近的语法不正确 因为 bool 不是 T SQL 中的类型 它不存在 布尔表达式不是位类型 他们不have类型 仅
  • 如何在 Polymer 1.0 中过滤铁列表?

    The dom repeat元素提供了一个filter属性 有没有类似的过滤方法iron list 例如 给定一个人员列表 我想过滤出生在特定城市的人 As iron list不幸的是不提供filter属性 没有声明性模式使这成为可能 您可
  • ActiveRecord:如何找到所有孩子都符合条件的父母?

    假设我有一个Parent模型有很多Child 然后Child也属于OtherParent 我怎样才能找到全部Parent其中所有的Child属于任何OtherParent 在纯 SQL 中我可以做 Parent find by sql lt
  • PySpark 可以使用 numpy 数组吗?

    我尝试在 pyspark 会话中执行以下命令 gt gt gt a 1 2 3 4 5 6 7 8 9 10 gt gt gt da sc parallelize a gt gt gt da reduce lambda a b a b 效果
  • 我的 onChange 不适用于反应

    我已经关注了这个文档 https facebook github io react docs forms html why select value并使用 React 创建了一个选择标签 我已经编辑了这个问题 如果我在选择中使用 class