首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在react钩子上检查我的条件

如何在react钩子上检查我的条件
EN

Stack Overflow用户
提问于 2020-05-26 07:28:33
回答 2查看 333关注 0票数 0

我需要检查我的条件反应挂钩时,启动或更改的值我尝试了这段代码,但我不能运行没有Btn

代码语言:javascript
复制
import React,{useEffect} from 'react';
import { StyleSheet, View } from 'react-native';
import * as Permissions from 'expo-permissions';
import { Notifications} from 'expo';
export default function NotificationsTest() {
  const y = 5;
  const askPermissionsAsync = async () => {
    await Permissions.askAsync(Permissions.USER_FACING_NOTIFICATIONS);
  };
  const btnSendNotClicked = async () => {
    if(y===5){
      await askPermissionsAsync();
      Notifications.presentLocalNotificationAsync({
        title: "Title",
        body: "****** SUBJ *******",
        ios:{
          sound:true,
        },
        android:{
          sound:true,
          color:'#512da8',
          vibrate:true,
        }
     });
    }else{ 
    }    }
  useEffect(()=>{
    return btnSendNotClicked  
  }
  ,[])
   return (
      <View style={styles.container}>
      </View>
  );  
}

我只想确认一下,在useEffect中检查这种情况是不是一种好的做法?

EN

回答 2

Stack Overflow用户

发布于 2020-05-26 07:52:40

在启动时,带有空数组的useEffect将被触发,这将在页面加载期间发生(第一次),因此您可以在那里编写条件。下面是一个示例:

代码语言:javascript
复制
useEffect(()=> {

    // Your condition here

}, []);

如果您有一个像value这样的变量,那么您可以像下面这样编写另一个值,并在useEffect的第二个参数中将该变量( useEffect )设置为一个数组

代码语言:javascript
复制
const [value, setValue] = useState('');
useEffect(()=> {

    // Your condition here

}, [value]);
票数 0
EN

Stack Overflow用户

发布于 2020-05-26 21:40:17

代码语言:javascript
复制
const y = 5;

//this one will run every time the component renders
//so you could use it to check for anything on the startup
useEffect(()=> {

    // Your condition here

}, []);

否则,您可以添加一个值或要跟踪更改的值数组,以便下面的useEffect仅在y常量发生更改时运行,因此您可以添加一个if检查,以检查y===5是否也会在常量y的第一个字母上运行,因此在您的情况下它是完美的

}

代码语言:javascript
复制
useEffect(()=> {

    // will run every time y const change and on the first initial of y
    if (y === 5)
    {
      //do your stuff here
    }

}, [y]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62012314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档