博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
翻译 Meteor React 制作 Todos - 08 - 模板UI的状态
阅读量:6371 次
发布时间:2019-06-23

本文共 1780 字,大约阅读时间需要 5 分钟。

在组件状态中存储临时数据

在这个步骤,我们会在为应用的客户端添加数据过滤特性,这样用户就可以通过点击’确认选框‘来查看当前进行的任务。我们会去学习如何仅在客户端使用React组件状态来存储临时模板

首先,我们需要在我们的App组件中,添加’确认选框‘

Todo List

你可以看到要在this.state.hideCompleted上的读取属性。React组件有一个名叫state(状态)的特殊变量(field)。你可以在state中存储运算后的组件数据,我们需要在组件中去定义一个叫做getInitialState的方法来初始化这个变量

// 在App.jsx文件中// 这个mixin将会使得getMeteorData方法正常执行mixins: [ReactMeteorData],// 添加开始getInitialState() {  return {    hideCompleted: false  }},// 添加结束// 从Tasks集合中读取数据并传送到this.data.tasks中getMeteorData() {  return {

你可以在事件监听中通过从一个叫做this.setState的方法来更新this.statethis.setState将会异步地更新状态属性,然后让组件重新渲染。

// 在App.jsx文件中  React.findDOMNode(this.refs.textInput).value = "";},// 添加开始toggleHideCompleted() {  this.setState({    hideCompleted: ! this.state.hideCompleted  });},// 添加结束render() {  return (    

现在我们得更新getMeteorData方法。使其可以在this.state.hideCompletedtrue时,过滤我们已完成的任务。

// 在App.jsx文件中 // 从Tasks集合中读取数据并传给this.data.tasksgetMeteorData() {    // 修改开始  let query = {};  if (this.state.hideCompleted) {    // If hide completed is checked, filter tasks    query = {checked: {$ne: true}};  }  return {    tasks: Tasks.find(query, {sort: {createdAt: -1}}).fetch()  };    // 修改结束},renderTasks() {

现在,如果你确认了任务已完成,任务列表中将会只显示那些没有被完成的任务。

再来个特性:显示未完成任务的数量

我们已经编写了语句来过滤已完成的任务,我们也可以使用相同的语句去展示没有被确认完成的任务的数量。要完成这个特性,我们要从getMeteorData的方法中获取总数,然后再render方法中添加一行。因为我们已经有数据在客户端的MiniMongo里了,所以添加额外的总数并不会向服务器再次申请数据。

// 在App.jsx文件的getMeteorData的return改成这样return {      tasks: Tasks.find(query, {sort: {createdAt: -1}}).fetch(),      incompleteCount: Tasks.find({checked: {$ne: true}}).count()    };
// 在App.jsx的render方法的return 附近,添加这么一句return (  
// 修改开始

Todo List ({this.data.incompleteCount})

// 修改结束

转载地址:http://otyqa.baihongyu.com/

你可能感兴趣的文章
漏洞预警!微软曝光震网三代漏洞,隔离网面临重大危机
查看>>
协鑫集成第二批1000台E-KwBe光伏储能设备即将启运澳洲
查看>>
爱立信物联网广州路演
查看>>
云计算企业业绩分化明显 9家上市公司中期预喜
查看>>
《VMware Virtual SAN权威指南(原书第2版)》一3.5 可能发生的网络配置问题
查看>>
SK电讯发布Q2财报 净利润同比下降26.9%
查看>>
零售品牌如何驾驭大数据主导商业决策?
查看>>
经济模式UPS在数据中心的应用(上)
查看>>
Intel首款32核Xeon E5 v5跑分曝光:史上最强
查看>>
中国基于国产龙芯处理器的大数据一体机
查看>>
物联网影响商业发展三要素
查看>>
China Unicom and Chunghwa Telecom work together&nb
查看>>
Java图片上查找图片算法
查看>>
Python fabric实现远程操作和部署
查看>>
详解Java中staitc关键字
查看>>
前中情局局长:FBI目的是从根本上改善iPhone
查看>>
大隐隐于市,你身边的那些安全隐患你都知道么?
查看>>
物联网市场迅猛发展 “中国芯”如何把握机会?
查看>>
aws 上使用elb 的多域名问题
查看>>
环球花木网的目标就是致力于打造成为“园林相关行业的专业性门户网站
查看>>