美文网首页
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