确定资料的建立後,接下来要在List元件中使用回圈渲染的事件的方式将每个新增的样式呈现在列表之中。
之後会在List元件的jsx使用这个回圈渲染的function元件并传入props,让我们可以取得待办事项的阵列资料。
const itemLoop = function (list) {
const deleteItem = prop.fuc.deleteItem
const doneItem = prop.fuc.doneItem
return list.map((item) => {
return (<div key={item.key}>
<div className="flex item-wrap">
<p>{item.content}</p>
<div className="flex center gap-10">
<Button content="删除" type="detele" />
<Button content="完成" />
</div>
</div>
<hr />
</div>)
})
}
import React from 'react';
import { useLocation } from 'react-router-dom';
import Button from './Button';
function List(prop) {
//根据路由判断显示项目跟内容
const location = useLocation()
const path = location.pathname
const title = path === '/undo' ? '待办' : '完成'
//在完成事项不需要'完成'按钮,判断在/done路由时不显示
const btnDisplay = {
display: path === '/done' ? 'none' : 'flex'
}
//项目
const itemLoop = function (list) {
// const deleteItem = prop.fuc.deleteItem
// const doneItem = prop.fuc.doneItem
return list.map((item) => {
return (<div key={item.key}>
<div className="flex item-wrap">
<p>{item.content}</p>
<div className="flex center gap-10">
<div>
<Button content="删除" type="detele" />
</div>
<div style={btnDisplay} >
<Button content="完成" />
</div>
</div>
</div>
<hr />
</div>)
})
}
return (
<div className="content-edit wrap">
<div className="title">
//不同标题,还有根据prop的list显示事件数量
<h3>{title + '项目'}</h3>
{`(${prop.show.length > 0 ? `你有${prop.show.length}个${title}项目` :
`目前无${title}项目`})`}
</div>
<div className="item">
//使用回圈渲染函式的变数传入prop
{itemLoop(prop.show)}
</div>
</div>
);
}
export default List;
//App.js
//省略其他import
//引入List元件
import List from './components/List';
//略...
//App元件的Jsx模板
return (
<div className="App">
<Header />
<div className="container">
<Input />
<div className="list-wrapper">
//传入todoList阵列给List元件
<List show={todoList} />
</div>
</div>
</div>
)
}
全部画面出来了!也可以藉由Input新增事项!
但目前列表按钮按了没用,而且路由切换後的清单内容都一样。
明天最後一天把删除完成的功能加上去,让这个todoList可以使用吧!
1.前言 今天来讲讲函式(不是韩式料理的韩式),而是Coding时会用到的程序方法(你到底在讲啥?)...
Q1. 什麽是 SVN ? Subversion (简称SVN),与 Git 一样是原始码版本管理软...
现在的Unity插件五花八门,现在自己写出一个简单的游戏甚至不用自己写脚本,利用Asset Stor...
今天我们来聊点轻松(?)的主题 - 「如何设计出自己的 RxJS Operators」吧! 为何要自...
iOS工程师面试深入浅出- 物件导向的三大特性? 这题乍看之下是很本科系的问题,但事实上,当你在开发...