Advertisement
Guest User

Untitled

a guest
May 1st, 2021
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. import { Component } from "react";
  2. import TodoItem from "./TodoItem";
  3.  
  4. class Todo extends Component {
  5. state = {
  6. todos: [
  7. { id: 1, text: "Test", isSuccess: false },
  8. { id: 2, text: "Test 2", isSuccess: false }
  9. ],
  10. todosText: null
  11. };
  12.  
  13. handlerAdd() {
  14. this.state.todos.push({
  15. id: 5,
  16. text: this.state.todosText,
  17. isSuccess: false
  18. });
  19.  
  20. this.setState(this.state);
  21. }
  22.  
  23. handlerSucess(index) {
  24. // Это работает, но как я понял, так делать не стоит, поэтому нужен другой способ изменить state.
  25.  
  26. this.state.todos[index].isSuccess = true;
  27. this.setState(this.state);
  28.  
  29. console.log(this.state);
  30. }
  31.  
  32. render() {
  33. return (
  34. <div>
  35. <h1>Добавьте новую задачу</h1>
  36. <input
  37. type="text"
  38. onInput={(event) => this.setState({ todosText: event.target.value })}
  39. />
  40. <button onClick={this.handlerAdd.bind(this)}>Add Todo</button>
  41. <hr />
  42. <TodoItem
  43. state={this.state.todos}
  44. onSuccess={this.handlerSucess.bind(this)}
  45. />
  46. </div>
  47. );
  48. }
  49. }
  50.  
  51. export default Todo;
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement