首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除钩子,自动删除数据库中的所有条目。

删除钩子,自动删除数据库中的所有条目。
EN

Stack Overflow用户
提问于 2020-03-18 12:48:58
回答 1查看 204关注 0票数 0

我创建了一个delete钩子来单独删除屏幕上的一些数据,但是每次加载钩子时,它都会删除页面上的所有条目。我试图能够点击一个图标并删除一个项目。我正在通过道具传递项目的id,然后调用我的delete函数,但是没有等待用户输入,钩子会删除数据库中的所有内容。任何帮助都是非常感谢的。

Hook

代码语言:javascript
复制
import { useContext } from 'react';
import { Context as CertificationContext } from '../context/CertificationContext';
import { Context as CertificateInfoContext } from '../context/CertificateInfoContext';

export default () => {
  const { deleteCertification } = useContext(CertificationContext);
  const {
    state: { certificationId }
  } = useContext(CertificateInfoContext);
  console.log('Delete' + certificationId);
  const removeCertification = async id => {
    await deleteCertification(id);
  };

  return removeCertification;
};

组件

代码语言:javascript
复制
import { View, Text, StyleSheet } from 'react-native';
import { Button } from 'react-native-elements';
import Icon from 'react-native-vector-icons/Feather';
import { navigate } from '../navigationRef';
import useDeleteCertification from '../hooks/useDeleteCertification';

const Certifications = ({ title, month, description, id }) => {
  const removeCertification = useDeleteCertification();
  return (
    <View style={styles.mainContainer}>
      <View style={styles.firstContainer}>
        <Text style={styles.monthText}>{month}</Text>
        <Text style={styles.dayText}>FRI</Text>
      </View>
      <View style={styles.secondContainer}>
        <Text style={styles.title}>{title}</Text>
        <Text style={styles.subtitle}>{description}</Text>
        <View style={styles.buttonView}>
          <Button
            icon={<Icon name='trash-2' color='grey' size={15} />}
            type='clear'
            onPress={removeCertification(id)}
          />
          <Button
            icon={<Icon name='share' color='grey' size={15} />}
            type='clear'
            onPress={() => {
              console.log('Share Button');
            }}
          />
          <Button
            icon={<Icon name='edit' color='grey' size={15} />}
            type='clear'
            onPress={() => {
              navigate('EditCertification', { id });
            }}
          />
        </View>
      </View>
    </View>
  );
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-18 23:51:27

onPress支柱中使用箭头函数,如下所示:

代码语言:javascript
复制
<Button
  icon={<Icon name='trash-2' color='grey' size={15} />}
  type='clear'
  onPress={() => removeCertification(id)}
/>

现在您正在传递一个函数,而不是函数的结果,因此它不会在呈现时触发。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60739968

复制
相关文章

相似问题

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