反应全局变量中的本机更新状态更改

时间:2019-10-19 04:38:17

标签: reactjs react-native

我创建了1个具有1个按钮和1个文本的组件。我创建了一个名为global.js的js文件,该文件存储了device_type。现在,当我按下按钮时,我调用了在不同文件上创建的函数。此函数将全局变量device_type更新为Android或IOS。当全局变量发生变化时,它应该反映在我的组件屏幕中并更新“文本”字段。我该如何实现?

让我详细解释。 首先,我创建了组件

import React, { useState } from 'react'
import { View, Text, StyleSheet, TextInput, Button, Keyboard } from 'react-native'
import checkDevice from './CheckDevice'
import globals from './globals'

//Componet screen which will display on device
const checkDeviceType = () =>{
    const [deviceType,setDeviceType] = useState(globals.devive_type)

useEffect ( ()=>{
}[deviceType])
    return(
        <View>
<Button title = 'Save Post' onPress = {()=> checkDevice.checkType()}/>
<Text> {dviceType} </Text>
</View>
    )
}

const styles = StyleSheet.create({

})

export default EditScreen

//Function to check deviceType create in separate file
import globals from './globals'
const checkDevice = {
checkType = () =>{
  call method to get device type
  globals.devive_type = 'Android' 
}

现在,当我单击按钮上的文本时

目前,我正在使用回调功能。但是我认为这不是正确的方法

1 个答案:

答案 0 :(得分:0)

如果在组件的任何父组件(包含按钮和文本字段)中定义了全局变量,则您将能够在组件中以props的形式访问它。

您能像这样分享您的代码吗,这非常令人困惑。 如果您还有其他疑问,请写信给我。 希望这会有所帮助。 谢谢