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

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

App.js 的渲染方法出錯?React-Native 問題

App.js 的渲染方法出錯?React-Native 問題

www說 2023-03-24 13:59:29
下面粘貼的是我的代碼:import React, {useState} from 'react';import {View, StyleSheet, Flatlist, Alert} from 'react-native';import 'react-native-get-random-values';import {v4 as uuidv4} from 'uuid';import {AddTask} from './src/screens/AddTask';import {TaskList} from './src/screens/TaskList';const App = () => {  const [tasks, setTasks] = useState([{id: uuidv4(), text: 'Task 1'}]);  const deleteTask = (id) => {    setTasks((prevTasks) => {      return prevTasks.filter((task) => task.id != id);    });  };  const addTask = (text) => {    if (!text) {      Alert.alert('Error', 'Please enter a task', {text: 'Ok'});    } else {      setTask((prevTask) => {        return [{id: uuid(), text}, ...prevTask];      });    }  };  return (    <View style={styles.container}>      <AddTask addTask={addTask} />      <Flatlist        data={tasks}        renderItem={({task}) => (          <TaskList item={task} deleteTask={deleteTask} />        )}      />    </View>  );};const styles = StyleSheet.create({  container: {    flex: 1,    paddingTop: 10,  },});export default App;我的渲染方法出現錯誤:錯誤警告:React.createElement:類型無效——需要一個字符串(對于內置組件)或一個類/函數(對于復合組件),但得到:未定義。您可能忘記從定義它的文件中導出您的組件,或者您可能混淆了默認導入和命名導入。在谷歌上搜索了一下后,人們告訴我檢查我的進口商品,但我發誓他們做對了。有人可以幫我理解這個嗎?我正在構建一個任務管理器,我希望稍后實現 Redux,但我只是想先構建應用程序:稍后添加 redux。完整的 Github 項目:https://github.com/calebdockal/TaskManagerApp2
查看完整描述

2 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

代碼中幾乎沒有更改。


在 import 語句中刪除 AddTask 和 TaskList 周圍的大括號


import AddTask from './src/screens/AddTask';

import TaskList from './src/screens/TaskList';

在 import 語句中將 Flatlist 更改為 FlatList


import {View, StyleSheet, FlatList, Alert} from 'react-native';

并更改退貨聲明。然后將 renderItem 中的變量從任務更新為項目,將項目更新為任務,如下所示


<FlatList data={tasks}

    renderItem={({item}) => (

        <TaskList task={item} deleteTask={deleteTask} />

    )}

/>

完整代碼如下


import React, {useState} from 'react';

import {View, StyleSheet, FlatList, Alert, Text} from 'react-native';

import 'react-native-get-random-values';

import {v4 as uuidv4} from 'uuid';

import AddTask from './src/screens/AddTask';

import TaskList from './src/screens/TaskList';


const App = () => {

  const [tasks, setTasks] = useState([{id: uuidv4(), text: 'Task 1'}]);


  const deleteTask = (id) => {

    setTasks((prevTasks) => {

      return prevTasks.filter((task) => task.id != id);

    });

  };

  const addTask = (text) => {

    if (!text) {

      Alert.alert('Error', 'Please enter a task', {text: 'Ok'});

    } else {

      setTasks((prevTask) => {

        return [{id: uuidv4(), text}, ...prevTask];

      });

    }

  };  

  return (

    <View style={styles.container}>    

      <AddTask addTask={addTask} />

       <FlatList

          data={tasks}

          renderItem={({item}) => (

            <TaskList task={item} deleteTask={deleteTask} />

          )}

        />  

  )}

/>

    </View>

  );

};


const styles = StyleSheet.create({

  container: {

    flex: 1,

    paddingTop: 10,

  },

});


export default App;

我已經從 github 上獲取了你的代碼并更新了代碼。你可以在這里查看 https://snack.expo.io/FbOC0J!MM


查看完整回答
反對 回復 2023-03-24
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

您需要在代碼頂部添加 import React from 'react'



查看完整回答
反對 回復 2023-03-24
  • 2 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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