badgerYo 2017-05-13 12:04 采纳率: 100%
浏览 2741

ReactNative中通过setInterval改变State时的参数问题

Blink是自定义的组件,通过1秒的间隔改变state属性showText值来设置Blink内容的显示,问题是下面代码的preState ,为什么可以直接调用,这个自定义的state名为什么可以直接作为参数来setState。

class Blink extends Component {
    constructor(props) {
super(props);
this.state = { showText: false };

setInterval(() => {
  this.setState(preState => {
    return { showText: !preState.showText };
  });
}, 1000);

** 下面是完整代码**

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

class Blink extends Component {
    constructor(props) {
super(props);
this.state = { showText: false };

setInterval(() => {
  this.setState(preState => {
    return { showText: !preState.showText };
  });
}, 1000);

    }
    render() {
//三目运算符根据showText的状态来设置显示数据
let display = this.state.showText ? this.props.text : '';
return (
  <Text>{display}</Text>
)
    }

}

class Test13 extends Component {
    render() {
return (
  <View>
    <Blink text='I am the Blink,which is defined by yourself' />
    <Blink text='I am the Blink,which is the system component' />
    <Blink text='I am the Blink,view is the parent Component' />
  </View>
);
    }
}
 AppRegistry.registerComponent('Test13', () => Test13);
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥88 python部署量化回测异常问题
    • ¥30 酬劳2w元求合作写文章
    • ¥15 在现有系统基础上增加功能
    • ¥15 远程桌面文档内容复制粘贴,格式会变化
    • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
    • ¥15 这种微信登录授权 谁可以做啊
    • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
    • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
    • ¥15 网络设备配置与管理这个该怎么弄
    • ¥20 机器学习能否像多层线性模型一样处理嵌套数据