react.js - 新学react-native 看了一点非常不理解,请帮忙解决初级问题

查看:74
本文介绍了react.js - 新学react-native 看了一点非常不理解,请帮忙解决初级问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native';

class Blink extends Component {
constructor(props) {

super(props);
this.state = { showText: true };

// 每1000毫秒对showText状态做一次取反操作
setInterval(() => {
  this.setState(previousState => {
    return { showText: !previousState.showText };
  });
}, 1000);

}

render() {

// 根据当前showText的值决定是否显示text内容
let display = this.state.showText ? this.props.text : ' ';
return (
  <Text>{display}</Text>
);

}
}

class BlinkApp extends Component {
render() {

return (
  <View>
    <Blink text='I love to blink' />
    <Blink text='Yes blinking is so great' />
    <Blink text='Why did they ever take this out of HTML' />
    <Blink text='Look at me look at me look at me' />
  </View>
);

}
}

AppRegistry.registerComponent('BlinkApp', () => BlinkApp);

这个是在教程state那一块的代码, previousState是什么??和state是什么关系?

  this.setState(previousState => {
    return { showText: !previousState.showText };
  });
  还有这段应该怎么理解? 如果说是要把state 每隔1秒设置成上一次状态相反的话,那 "previousState =>" 这样写是什么意思?按照常理的逻辑这样不就是设置state成上一个state 的相反值了吗?(可能语法格式上有问题)
  this.setState({
    return {showText: !previousState.showText}
  });
  

解决方案

react native是用ES6语法写的。这是ES6语法 箭头函数。
http://es6.ruanyifeng.com

这篇关于react.js - 新学react-native 看了一点非常不理解,请帮忙解决初级问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆