簡體   English   中英

如何結合這兩個 onPress 功能?

[英]How to combine these two onPress functions?

我正在制作一個成績計算器應用程序。 我正在使用 AsyncStorage 在手機上本地存儲我的“類”對象。 當我在 main.js 屏幕上單擊其中一門課程時,它將打開另一個名為 courseDetails.js 的屏幕。 在那里,有一個刪除按鈕,正如預期的那樣,它將 object 從存儲對象的數組中刪除。 我的問題是,我希望我的刪除按鈕能夠執行onPress={() => removeCourse(course.key)}onPress={() => navigation.navigate('Home') ,所以它會刪除我的 object ,然后帶我回到主屏幕,但我該如何組合它們呢? 它們都單獨工作,但我不能讓它們同時工作......有關更多上下文,這是我的removeCourse() function:

const removeCourse = (courseKey) => {
    console.log('remove course')
    newCourses = courses.filter((course) => {
        return course.key != courseKey
    });
    
    setCourses(newCourses);

    save(newCourses);

這是courseDetails.js代碼:

import React from 'react';
import {StyleSheet, View, Text, } from 'react-native';
import { globalStyles } from '../styles/global';
import DetailCard from '../shared/detailCard';
import DeleteButton from '../shared/deleteButton';


export default function CourseDetails({navigation}){
    let course = navigation.getParam('course')
    let removeCourse = navigation.getParam('removeCourse')

    return(
        <View style={globalStyles.container}>
            <DetailCard>
                <Text >{course.course}</Text>
                <Text >{course.prof}</Text>
                {/* <Text >{navigation.getParam('gpa')}</Text> */}
            </DetailCard>
            <DeleteButton text='Delete Course' onPress={() => navigation.navigate('Home')}/> //onPress in question
        </View>
    )
}

您是否嘗試過將兩者結合在一個 onPress 回調中,像這樣?

<DeleteButton text='Delete Course' onPress={() => {
    removeCourse(course.key);
    navigation.navigate('Home');
  }}/>

您可以使用useEffect並將課程作為依賴項包含在useEffect中。 一旦課程中的某些內容被刪除, useEffect被觸發,您可以在其中指示 react 導航回您想要的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM