当前位置: 首页 > 知识库问答 >
问题:

对单击的按钮的读取值作出反应

葛深
2023-03-14

抱歉,如果这个主题它可能是另一个的副本,但我不明白我做错了什么我的代码+我真的是新的反应。我试过几种解决办法,但都不奏效。我会把我读到的一些帖子放在这里:

>

  • React js onClick无法将值传递给方法

    如何获取已单击按钮的id?ReactJS

    我需要用handleInput将value中的字符串记录在console.log中

    代码

    import React, {Component} from 'react';
    import Button from './Button';
    import Screen from './screen';
    import './keyboard.css'
    
    class NumberKeyboard extends Component {
        constructor(props){
            super(props)
            this.state = {
                operations: []
            }
    
        }
    
    handleInput(props) {
        const buttonValue= this.props.value;
        console.log(buttonValue)
    }
    
    
        render() {
    
    
            return (
                <div className="keyboard">
                    <div className="column"></div>
                    <div className="column">
                        <div className="keyboardRow roundBorder" value={"example"} onClick={() => this.handleInput('value')}>
                            <Screen className="crystalScreen"></Screen>
                            <Button value="clear" >C</Button> 
                            <Button value="±">±</Button>
                            <Button value=".">.</Button>
                            <Button value="">+</Button>
                        </div>
                        <div className="keyboardRow">
                            <Button value="clear">1</Button>
                            <Button value="2">2</Button>
                            <Button value="3">3</Button>
                            <Button value="-">-</Button>
                        </div>
                        <div className="keyboardRow">
                            <Button value="4">4</Button>
                            <Button value="5">5</Button>
                            <Button value="6">6</Button>
                            <Button value="*">X</Button>
                        </div>
                        <div className="keyboardRow lastRow">
                            <Button value="7">7</Button>
                            <Button value="8">8</Button>
                            <Button value="9">9</Button>
                            <Button value="%">÷</Button>
                        </div>
                    </div>
    
                    <div className="column"></div>
                </div>
            )
        }
    }
    
    export default NumberKeyboard;
    

    我尝试了几次尝试来解决它,但每次我得到的最大结果都是可悲的未定义或一个错误。

    由于这些帖子的访问,我想给出一点更新,并树立一个基于钩子的例子:

    import React, { useState } from 'react';
    import KeyboardRow from 'src/components/keyboardRow'; /* ideally this
     should contain the buttons element. i'm writing in this way just to stay 
     closer to the initial question */  
    
    function NumberKeyboard() {
      const [selectedNumber, setSelectedNumber] = useState(0);
    
      const selectNumber = numberSelected => {
           setSelectedNumber(numberSelected)
      }
    
      return (
      <>
        <KeyboardRow >
           <Button onClick={selectNumber} value="7">7</Button>
           <Button onClick={selectNumber} value="8">8</Button>
           <Button onClick={selectNumber} value="9">9</Button>
        </KeyboardRow >
        <div>{selectedNumber}<div>
      </>
      );
    }
    
  • 共有1个答案

    闻人鸿文
    2023-03-14

    您正在以错误的方式发送和接收数据。首先,您需要使用onclick={this.handleinput}onclick={(e)=>this.handleinput(e,'value')}而不是onclick={()=>this.handleinput('value')},因为您要在函数中发送'value'字符串。

    <div className="keyboardRow roundBorder" value={"example"} onClick={e => this.handleInput(e, "value")} >
    

    然后以以下方式接收:

    handleInput(e) {
        console.log(e.target.value);
    }
    

    您可以检查工作演示。

     类似资料:
    • 问题内容: 抱歉,如果这个话题可能是另一个话题的副本,但是我不明白我的代码在做什么错+我真的是新来回应。我尝试了几种解决方案,但没有一个起作用 问题 我需要用handleInput 在console.log中输入字符串 码 我尝试了几次尝试来解决它,但每次遇到的最大结果都是可悲的未定义或错误。 ---------------------------更新----------------------

    • 我想知道我将如何获得被点击的按钮的id(因为它是未知的)。因此,当单击按钮时,我知道该特定按钮的id是什么。页面上有很多按钮,我想知道按下了哪个按钮(它们都有唯一的id)。当前按钮如下所示:

    • 我试图在单击某个按钮时显示该按钮的值。如果我在eventListener中为此编写代码,则会弹出警报,但不会显示文本。 我已尝试将警报移动到eventListener上方和for循环内部,这将在页面加载时显示正确的值。 按钮的HTML格式: Javascript:

    • 当用户单击返回按钮时,我正在尝试退出应用程序,让它在单击是按钮时显示对话框是/否按钮,让它退出应用程序,包括注册活动,假设您在主活动上。 这是我的代码,但它不工作 单击主活动上的“后退”按钮时 如何从主活动退出应用程序,包括在是按钮单击对话框上的注册活动

    • 问题内容: 关于按下inputDialoguebox的“取消”按钮,我有一个问题。我之前也曾问过类似的问题,因此我很抱歉重复自己的道歉。 我遇到的主要问题是,无论我按取消如何,代码都将执行,即使不添加任何输入,套接字连接也不会建立。 为什么会发生这种情况,我该如何避免呢? 因此,即使我确实按了取消,也可以通过目前的方式建立clientsocket连接。原因可能是因为我在同一台计算机上将服务器和客户

    • 编辑:底部的解决方案 这是一个跳棋游戏。单击一个按钮后,它等待单击第二个按钮与之交换。然而,有时你可能不想移动那个按钮,但一旦你点击了它,就没有回头路了,因为我无法禁用它。 在这里的其他帖子中,我看到人们使用 这只是使它在第一次单击后不可见。 这什么都干不了。 这也没什么用。编辑:所有这些方法都用true和false进行了尝试。 私有无效交换(){ 但你也需要 这样它就重新启用了它,或者其他什么,