我在这个 React 应用程序中的待办事项列表没有出现

Posted

技术标签:

【中文标题】我在这个 React 应用程序中的待办事项列表没有出现【英文标题】:My to do list in this React app doesn't appear 【发布时间】:2020-11-21 10:58:22 【问题描述】:

简单的应用程序。它只返回 <ul><li> 元素。 我是否正确使用useState()?我必须先使用Array.from(),然后才能让地图功能在taskList 上工作。在此之前,我收到一条错误消息,说 taskList.map 不是函数。

这里是 App.js:

import React,  useState  from 'react';
import './App.css';
import ToDoList from './components/ToDoList';
import AddTask from './components/AddTask';

function App() 
  const [ tasks, setTasks ] = useState(['Test task', 'other task', 'blah task'])
  return (
    <>
      <ToDoList
        taskList=tasks
         />
    </>
  );


export default App;

这里是 TodoList.js:

import React from 'react';
import Task from './Task';
import v4 from 'uuid';

export default function ToDoList(taskList) 
    const listItems = Array.from(taskList).map((task) => 
        <Task key=v4
              detail=task />
    );

    return(
        <ul>
            listItems
        </ul>
    );

这里是 Task.js:

import React from 'react';

export default function Task(key, detail) 
    return ( // Number each item with keys... or an ol instead of ul
            <li key=key>
                detail
            </li>
    )

【问题讨论】:

【参考方案1】:

编辑:这是一个让您运行https://codesandbox.io/s/jolly-meadow-m87s9?file=/src/App.js 的简单示例。它将一个数组从状态映射到 li 元素,并包含一个用于附加状态的处理程序。

不确定您仍然遇到哪个错误?关于您的 Array.from/state 问题,请改用 state :

[myState, setMyState ] = useState(list: ['item1', 'item2'])

然后您可以通过简单地执行myState.list.map(item =&gt; ...) 来映射任务

【讨论】:

现在我得到 taskList.list is undefined. 好的,我给你做了一个代码沙箱并编辑了答案(还包括如何附加一个新任务,因为这可能是你的下一个问题) 这绝对是我的下一个问题! :-) 如果答案有用,请不要忘记投票和批准

以上是关于我在这个 React 应用程序中的待办事项列表没有出现的主要内容,如果未能解决你的问题,请参考以下文章

React+Redux实现简单的待办事项列表ToDoList

JavaScript/HTML 中的待办事项列表

React-Slick 不适用于 React 中的第一次渲染

无法在初始渲染中显示待办事项列表

React - 在我的待办事项应用程序中没有调用 mapStateToProps 函数

刷新反应组件或通量/减少中的逻辑?