简体   繁体   English

反应不渲染数组

[英]React not rendering the array

I am new to react and trying to create a simple todo list to understand React states and props but cant seem to understand why its not rendering the array on the screen.我是新来的反应并试图创建一个简单的待办事项列表来理解反应状态和道具,但似乎无法理解为什么它没有在屏幕上呈现数组。 When the button is pressed it console logs the array of the inputs so I know that works.当按下按钮时,控制台会记录输入数组,所以我知道这是有效的。

here is each component currently there are no errors just nothing shows up.这是每个组件目前没有错误只是没有显示。

App.js:应用程序.js:

import React from "react";
import ControlPanel from "./ControlPanel";
import TodoList from "./TodoList";

class App extends React.Component {
  state = { TodoList: [] };

  addTask = (todoItem) => {
    this.setState({ TodoList: [...this.state.TodoList, todoItem] });
    console.log(this.state.TodoList);
  };

  render() {
    return (
      <div>
        <ControlPanel addTask={this.addTask} />
        <TodoList todoitem={this.state.TodoList} />
      </div>
    );
  }
}

export default App;

ControlPanel.js:控制面板.js:

import React from "react";

class ControlPanel extends React.Component {
  state = { todoItem: "" };

  addItem = (event) => {
    event.preventDefault();

    this.props.addTask(this.state.todoItem);
  };

  render() {
    return (
      <div className="ui card">
        <div className="ui input">
          <input
            onChange={(e) => {
              this.setState({ todoItem: e.target.value });
            }}
            value={this.state.todoItem}
            type="text"
            placeholder="Todo List Item"
          />
        </div>
        <div>
          <button onClick={this.addItem} className="ui button">
            Add Item
          </button>
        </div>
      </div>
    );
  }
}

export default ControlPanel;

TodoList.js: TodoList.js:

import React from "react";
import TodoItem from "./TodoItem";

const TodoList = (props) => {
  const todoItems = props.TodoList?.map((todo) => {
    return <TodoItem TodoItem={TodoItem} />;
  });

  return <div>{todoItems}</div>;
};

export default TodoList;

TodoItem.js TodoItem.js

import React from "react";

const TodoItem = (props) => {
  return <div>{this.props.TodoItem}</div>;
};

export default TodoItem;

import React from "react";
import TodoItem from "./TodoItem";

const TodoList = (props) => {
  const todoItems = props.TodoList?.map((todo,idx) => {
    return <TodoItem TodoItem={todo} key={idx} />; // idx or any unique key
  });

  return <div>{todoItems}</div>;
};

export default TodoList;

More information for key https://reactjs.org/docs/lists-and-keys.html有关key https://reactjs.org/docs/lists-and-keys.html的更多信息

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM