2018-08-14

今日份收获(1th)
一、时间戳转换为日期:
timestampToDate(timestamp) {
  var date = new Date(timestamp);
  var Y = date.getFullYear();
  var Mon = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1);
  var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() ;
  var H = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() ;
  var Min = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() ;
  var S = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() ;
  return (
    {year:Y,month:Mon,day:D,hours:H,minutes:Min,seconds:S}
  )
}
//console.log(timestampToDate(1398250549123))
//{ year: 2014,month: '04', day: 23, hours: 18, minutes: 55,seconds: 49 }

  • 可以依据自己需要的格式进行输出
  • 注意变量名别取重复了,第一次写月和分的变量名都写了M,结果可想而知
  • React里面的时间戳转换可以使用:
import moment from 'moment'  //引入
moment(需要转换的时间).format('YYYY-MM-DD HH:mm:ss')
//2018-08-13 21:10:29
//测试 如果 mm  ss  写成大写的会出错
二、React Modal组件的使用

如果遇到我这样的程序猿,你可能想打人;
别人:Modal用得十分顺利,遮罩层的颜色很浅,很完美
Me:昨天中午用的Modal比别人的遮罩层颜色黑了三个度,
开始怀疑人生,找了样式发现颜色一样,开始怀疑电脑。。
晚上再用,wo要死了,遮罩层好比天都黑了。。。

Why?emmmm:历史教训告诉我,别把Modal写在循环里面(第一次循环了3个,第二次十多个吧,天黑也很正常,保持微笑)

三、State 的更新是异步的

其他甚好的原理记得去看大佬的解释,我的记忆已经深深地提醒我:调用setState,组件的state并不会立即改变,比如:

//selectedTab 初始值为 all 修改后应该为 NoPay
  onChange={(tab, index) => {
  console.log('111', this.state.selectedTab)  //setState 前输出
  this.setState({
       selectedTab: tab.sub
  }, () => { console.log('222', this.state.selectedTab) })  //setState  回调
  console.log('333', this.state.selectedTab)  //setState 后立马输出,还在onChange内
  }}

selectedTab 初始值为 all 修改后应该为 NoPay
上面的函数执行后输出的结果将会是:
111 all
333 all
222 NoPay
结果可以显示出,当setState完后,并没有立即改变了state的值,所以如果在onChange这个函数内使用这个state的值你会觉得自己setState失败了,但是其实并没有,从回调函数中可以看到,这个值已经被改变了,但是是要离开当前函数才能看到修改后的值

so:当发现自己的setState没有起作用的时候,可以考虑一下是否还没有在值被改变的时候使用了state的值

另外还有一个尚未理解的问题:
看到的资料都说,只有setState可以改变state的值,但是下面这种情况是如何实现改变state的值?

 onChange={(tab, index) => {
     this.state.listUserOrder.type = tab.sub
     this.setState({
        listUserOrder: this.state.listUserOrder
     })
     this.ListUserOrder()
  }}

上面这个代码是先改变了state中一个listUserOrder的type的值,然后通过
执行setStatelistUserOrder: this.state.listUserOrder,是可以实现修改state的值的,这种也算是setState的方式吗?这样子的话是不是说:资料说的只有setState可以改变state的值,不能单纯赋值改变指的是:单纯赋值可以改变state一时的值,而只有通过setState才能够被保存下来使用?

四、Reat里面事件绑定吧

吃过n多次亏,传不了值,都是因为this的问题,像写了个async的接口请求,在render中调用的时候,就会发现又不起作用了,现在的条件反射是:没有写箭头函数/bind(this)
onLeftClick={ this.onGoback} 无效
onLeftClick={() => this.onGoback()} 有效
用bind(this)也会有效
有待深入研究

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 如果一个品牌发展停滞不前了,那么我们需要考虑为这个品牌加入新的东西,让他更具有生命力。其实复兴品牌就类似于重新为品...
    向前Ahead阅读 3,599评论 0 0
  • sklearn 的Keras对二分类变量的应用 深度学习更适合较大的数据,数据量小的时候其实传统的机器学习效果更好...
    这是沸羊羊的干爹阅读 3,783评论 0 1
  • 事情是这样滴~ 我们在用工作号刷群,推送一些与父母工作有关的工作坊,除了推工作坊外,还推了之前的一篇讲座记录,题目...
    嫏嬛素素阅读 1,157评论 1 1
  • 日子过久了 爱情就是冬日里难得的晴空蓝云 天天有,但常常被雾霾逼退 可惜我是躺在120的急救担架上看到的这片蓝…
    呆萌的阿喵小姐阅读 1,337评论 0 0
  • 日子有功,你的时间花在哪里,你的成果就在哪里,说到底还是我不够努力,兼职之后心也是飘的,学习变得敷衍,是否应该承认...
    AnJ_d2df阅读 1,288评论 0 0

友情链接更多精彩内容