Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在react类组件中未定义我的变量_Javascript_Reactjs - Fatal编程技术网

Javascript 在react类组件中未定义我的变量

Javascript 在react类组件中未定义我的变量,javascript,reactjs,Javascript,Reactjs,我的变量没有定义,没有一个,为什么不呢?我错误地定义了什么? 我需要改变整个方法吗?或者我可以根据我写的内容修复一些东西吗 我在这里只放了相关的部分 谢谢 Addroom.js import React, { Component } from 'react' export default class Addroom extends Component { constructor(props) { super(props) this.s

我的变量没有定义,没有一个,为什么不呢?我错误地定义了什么? 我需要改变整个方法吗?或者我可以根据我写的内容修复一些东西吗

我在这里只放了相关的部分

谢谢

Addroom.js

import React, { Component } from 'react'

export default class Addroom extends Component {

    constructor(props) {
        
        super(props)
        this.state = {

            category,
            setCategory,
            roomTypes:[kitchen, bathroom, bedroom],
            yourRoom
        }}

        getSelectedRoomInCategory = () => {
            return roomTypes.filter(
              (yourRoom) => yourRoom.category === category
            );
          };

  
    render() {
        return (
            <div>
                <h1>Select Room Type!</h1> 

                <select onChange={(e) => setCategory(e.target.value)}>
                <option value={kitchen}>{kitchen}</option>
                <option value={bathroom}>{bathroom}</option>
                <option value={bedroom}>{bedroom}</option>
                </select>
            </div>
        )
    }
}

再见,您的代码中有一些错误。让我们尝试像这样重写组件:

import React, { Component } from 'react'

export default class Addroom extends Component {

constructor(props) {
    
    super(props)
    this.state = {
        roomTypes:["kitchen", "bathroom", "bedroom"],
        roomSelected: ''
    }}

 setCategory = (roomSel) => {
     this.setState({roomSelected : roomSel});
 };


render() {
    return (
        <div>
            <h1>Select Room Type!</h1> 

            <select onChange={(e) => setCategory(e.target.value)}>
               this.state.roomTypes.map(type => {
                  <option value={type}>{type}</option>
               })
      
            </select>
        </div>
    )
}
}
现在,您已经在此.state.roomSelected中选择了房间。

看起来像:

厨房、浴室、卧室里少了一些进口商品; 不必要地重写构造函数以设置初始状态; 错误引用setCategory解构this.state或将其完全引用为:this.state.setCategory; 未将state.setCategory设置为任何有效值,该值是否应属于状态,或者是否应从props传递?如果是,不要复制到状态; 未如上所述将state.category设置为任何有效值 可能缺少select上的值绑定;
现在,它的工作非常完美,所有相关变量都被导入并识别。 我使用了一种稍有不同的方法,使用下面写的方法,并做了一些修改

我在编写的函数和函数的调用之间建立了一个连接,并正确地定义了状态中的变量,因此现在所有相关变量都被导入和识别,一切正常。谢谢大家!


import React, { Component } from 'react'

export default class Addroom extends Component {

    constructor(props) {
        
        super(props)
        this.state = {
          
            roomTypes:["kitchen", "bathroom", "bedroom"],
            roomSelected: '',
            roomSel:''
    

        }}

    setCategory = (roomSel) => {
        this.setState({roomSelected : roomSel});
    };

    render() {
        return (
            <div>

            <h4>Select Room Type</h4>
            <select onChange={(e) => this.setCategory(e.target.value)}>
               {this.state.roomTypes.map((type) => 
                  <option value={type}>{type}</option>
               )}
      
            </select><br/>
            </div>
        )
    }

}

什么样的全局变量是未定义的?错误在哪里?那些变量厨房,浴室。。。不是全局变量。例如,对象是一个全局变量,您应该阅读有关作用域的内容,您可能是对的,我将深入并慢慢学习,我应该小心使用该术语。。。非常感谢。我使用了这个方法,并且理解了当用户在下拉列表中选择时,为输入的值选择的类型和房间。非常感谢。你是对的,我明白你的部分意思,我的问题的答案也与你所写的有关,非常感谢!