美文网首页
React-todo-list 系列三

React-todo-list 系列三

作者: Mark同学 | 来源:发表于2019-12-10 11:59 被阅读0次

函数组件 => 组件拆分

  • TodoList.js
import React, {useState} from 'react';
import TodoItem from './TodoItem';

export default function TodoList() {

  const [list, setList] = useState([])
  const [inputValue, setInputValue] = useState('')

  function handleBtnClick() {
    setList([...list, inputValue])
    setInputValue('')
  }

  function handleInputChange(e) {
    setInputValue(e.target.value)
  }

  function handleDelete(index) {
    const newList = [...list]
    newList.splice(index, 1)
    setList(newList)
  }

  return (
    <div>
      <div>
        <input value={inputValue} onChange={handleInputChange}/>
        <button onClick={handleBtnClick}>add</button>
      </div>
      <ul>
        {
          list.map((item, index) => {
            return (
              <TodoItem 
                key={index} 
                index={index} 
                content={item} 
                delete={handleDelete}
              />
            )
          })
        }
      </ul>
    </div>
  )
}
  • TodoItem.js
import React from 'react';

export default function TodoItem(props) {

  function handleDelete() {
    props.delete(props.index)
  }

  return (
    <li onClick={handleDelete}>{props.content}</li>
  )
}

相关文章

网友评论

      本文标题:React-todo-list 系列三

      本文链接:https://www.haomeiwen.com/subject/wxzwgctx.html