Javascript 导出React.JS变量并在其他文件中使用

Javascript 导出React.JS变量并在其他文件中使用,javascript,reactjs,Javascript,Reactjs,所以我想做的是从Forecast.js的单选按钮(metric或imperial)中获取输入,在Conditions.js的函数中使用它们来确定天气是热还是冷。我已经从Forecast.js导出了变量unit,但是当我尝试在costs()函数中使用它时,它不起作用。 我已经尝试了我在网上找到的一切,我试图理解,但我是新手 Conditions.js 它不起作用的原因可能是因为我没有正确地导入和导出,或者因为我没有正确地使用导入的变量 编辑:正如我所说,我是一个初学者,我知道的不多,我想看看如何

所以我想做的是从Forecast.js的单选按钮(metricimperial)中获取输入,在Conditions.js的函数中使用它们来确定天气是热还是冷。我已经从Forecast.js导出了变量unit,但是当我尝试在costs()函数中使用它时,它不起作用。 我已经尝试了我在网上找到的一切,我试图理解,但我是新手

Conditions.js

它不起作用的原因可能是因为我没有正确地导入和导出,或者因为我没有正确地使用导入的变量

编辑:正如我所说,我是一个初学者,我知道的不多,我想看看如何解决这个问题,然后了解如何解决。我只需要了解我的代码的问题,或者一个替代方案

  • if('Cloth'和'Forecast'是父子关系)

    “单位”状态可以通过“道具”传递

  • 功能父级(道具){
    const[unit,setUnit]=useState(“”)
    返回(
    )
    }
    功能儿童(道具){
    控制台日志(道具单元)
    返回(
    )
    }
    
  • 否则。您可以了解“react redux”
  • if('Cloth'和'Forecast'是父子关系)

    “单位”状态可以通过“道具”传递

  • 功能父级(道具){
    const[unit,setUnit]=useState(“”)
    返回(
    )
    }
    功能儿童(道具){
    控制台日志(道具单元)
    返回(
    )
    }
    
  • 否则。您可以了解“react redux”

  • 事情不是这样的。一个组件中的一个状态变量(如
    unit
    )不能像那样导出

    您主要可以做两件事:

    • 一种是将此
      单位
      值作为道具传递给
      条件.js
      ,然后将其传递给
      衣服
      功能(使用时,就像传递温度值一样)以使用它
    • 另一个是有一个状态管理工具,比如,或者甚至使用。如果您只需要使用其中一个,它可能无法补偿额外的样板文件,但至少值得了解它们

      • 这不是整个事情的运作方式。一个组件中的一个状态变量(如
        unit
        )不能像那样导出

        您主要可以做两件事:

        • 一种是将此
          单位
          值作为道具传递给
          条件.js
          ,然后将其传递给
          衣服
          功能(使用时,就像传递温度值一样)以使用它
        • 另一个是有一个状态管理工具,比如,或者甚至使用。如果您只需要使用其中一个,它可能无法补偿额外的样板文件,但至少值得了解它们

        你知道这到底是什么吗?因为它是javascript文件内部的全局变量,所以它是
        窗口
        对象
        当在
        方法外部使用时
        引用
        窗口
        对象,而
        窗口
        对象中没有任何
        状态
        属性。它永远不会工作。。。您无权访问
        Forecast
        功能之外的状态OK,那么我该怎么做呢?我在网上尝试了所有操作,但都无法正常工作。此
        数字('t')
        不起作用,它将字符串
        “t”
        转换为数字<代码>编号(t)
        应该是正确的。如果我是你,我会尝试给这个变量取一个更好的名字。另外,您不需要
        else
        ,因为您在
        if
        之后返回。您知道这个
        到底是什么吗?因为它是javascript文件内部的全局变量,所以它是
        窗口
        对象
        当在
        方法外部使用时
        引用
        窗口
        对象,而
        窗口
        对象中没有任何
        状态
        属性。它永远不会工作。。。您无权访问
        Forecast
        功能之外的状态OK,那么我该怎么做呢?我在网上尝试了所有操作,但都无法正常工作。此
        数字('t')
        不起作用,它将字符串
        “t”
        转换为数字<代码>编号(t)
        应该是正确的。如果我是你,我会尝试给这个变量取一个更好的名字。另外,您不需要在那里使用
        else
        ,因为您将在
        if
        之后返回。。。。或者使用上下文。。。或者使用上下文
        import { unit } from '../Forecast/Forecast.js';
        
        function clothes(t) {
            if (unit === "metric") {
                if (Number('t') <= 20)
                    return (<>
                        <img src={Cold} alt="wind icon" style={{ width: 50, marginRight: 20, height: 50 }} />
                    It's cold, dress accordingly!
                    </>);
                else
                    return (<>
                        <img src={Hot} alt="wind icon" style={{ width: 50, marginRight: 20, height: 50 }} />
                    It's Warm, dress accordingly!
                    </>);
            }
        
            if (unit === "imperial") {
                if (Number('t') <= 70)
                    return (<>
                        <img src={Cold} alt="wind icon" style={{ width: 50, marginRight: 20, height: 50 }} />
                    It's cold, dress accordingly!
                    </>);
                else
                    return (<>
                        <img src={Hot} alt="wind icon" style={{ width: 50, marginRight: 20, height: 50 }} />
                    It's Warm, dress accordingly!
                    </>);
            }
        }
        
        
        export default Forecast;
        export let unit = this.state.unit;
        
        function Parent(props){
        const [unit,setUnit] = useState("")
        return(
         <Child unit={unit}>
        )
        }
           
        function Child(props){
          console.log(props.unit)
        return(
        <div/>
        )
        }