亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

TypeError:未定義不是一個對象在React Native中評估'addTodo

TypeError:未定義不是一個對象在React Native中評估'addTodo

瀟湘沐 2023-07-14 15:01:14
我收到異常 TypeError: undefined is not an object (evaluating 'addTodo(title, description).then') 該函數工作正常并且狀態更新正常,但它沒有按預期工作。添加Todo.js:import { useNavigation } from '@react-navigation/native';import React , {useContext, useState} from 'react';import { View } from 'react-native';import { Input , Button} from 'react-native-elements';import { TextInput } from 'react-native-gesture-handler';import {cardContext} from '../contextApi/cardContext';const NewTodoInput = () =>{const { addTodo } = useContext(cardContext);const navigation = useNavigation();const [title , setTitle] = useState()const [description , setDescription] = useState()const handleOnSubmit = ()=>{        addTodo(title,description)    .then((data)=>{        navigation.navigate('TodoApp');        console.log('Added Succesfully : ' + data);    })    .catch((e)=>{console.log(e)});}return (    <View>    <Input     placeholder = 'Title'    onChangeText= {(val)=>{setTitle(val)}}    />    <Input     placeholder = 'Your todo'    multiline = {true}    onChangeText = {(val) => {setDescription(val)}}    />    <Button         buttonStyle= {{backgroundColor : 'black'}}        title = 'Submit'        onPress = {handleOnSubmit}                    />    </View>)}export default NewTodoInput ;上下文.jsimport React , {createContext, useState} from 'react'export const cardContext = createContext();const Data = (props) =>{    const [data , setData] = useState(        //todo Add id to the data        [            {title : 'This is title 1' , Description : 'this is description 1'},            {title : 'This is title 2' , Description : 'this is description 2'},            {title : 'This is title 3' , Description : 'this is description 3'},            {title : 'This is title 4' , Description : 'this is description 4'},        ]            ) 
查看完整描述

1 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

如果您想更改 addTodo 以使其返回評論中所述的承諾,那么這里是:


const addTodo = (title , description) =>{

   setData( [...data , {title : title, Description : description}] )

   return new Promise((resolve, reject) => {

       resolve("data") // Do something here preferable what you need inside .then()

                      })

}


查看完整回答
反對 回復 2023-07-14
  • 1 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號