【问题标题】:Onpress is not calling the function to change the stateOnpress 没有调用函数来改变状态
【发布时间】:2023-01-10 10:08:51
【问题描述】:

我正在使用 React Native。我正在尝试在单击时更改按钮。我想默认显示添加项目组件,当它被点击时我希望它更改为删除项目。

const Products = () => {
const [added,notAdd]=useState(false);
 function changeIT(){
        console.log(added);
        notAdd(!added);
        console.log(added);
        
    }
return (
{added?<Remove index={index} onPress={()=>changeIT()}/> :<Add item={item} onPress={()=>changeIT()}/> }
)}

单击按钮后没有任何反应。

【问题讨论】:

  • onPress 不像在新组件中那样工作,您也必须在 Remove 组件中执行此操作
  • “什么都没发生”——所以你也没有看到任何日志?
  • 你是在 Add 和 Remove 组件中调用 onPress 道具吗?您还可以包括删除和添加组件代码吗?
  • 检查 onPress 是否触发。显示代码

标签: javascript reactjs react-native react-hooks


【解决方案1】:

例如,我相信您只在执行组件时包含了 onPress 事件,而不是在实际组件本身中。

执行:

<Add item={item} onPress={()=>changeIT()}/>

宣言:

import React, {useState} from 'react';
import { Pressable, Text} from 'react-native';

export default function Add({ item , onPress}) {

  return (
    <Pressable onPress={onPress}> 
      <Text>Add</Text>
    </Pressable>
  );
}

【讨论】:

  • 它有效,但我现在有两个函数可以调用,当我点击可触摸时,我试图将它们都添加到 onPress,但它似乎不起作用?- ``` onPress={()=>{ addItem(item );按下; }}> ``` 这在 add.js 文件中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 2018-05-06
相关资源
最近更新 更多