【问题标题】:How to setState without using .bind(this) in react-native?如何在 react-native 中不使用 .bind(this) 来设置状态?
【发布时间】:2017-11-26 19:28:06
【问题描述】:

我不知道如何设置状态。 下面是我的代码...

import React from 'react';
import { StyleSheet, Text, View, TouchableHighlight, AsyncStorage, ListView } from 'react-native';

export default class App extends React.Component {

    constructor(){
        super();
        this.state = {
            myLeader: 'Joe',
        };
    }

    setMyLeader(name){
        this.setState({
            myLeader: name
        });
    }

    render() {
        return (
            <View>
                <TouchableHighlight

                    style={{padding: 30}}
                    onPress={this.setState(myLeader: 'xxx')}
                >
                    <Text>foo</Text>
                </TouchableHighlight>
            </View>
        );
    }
}

错误信息是这样的。 '找不到变量:myLeader'

如何解决这个问题?

【问题讨论】:

  • onPress={() => this.setMyLeader('xxx')} // 成功了

标签: react-native setstate


【解决方案1】:

在你的 onPress 函数中,你可以:

a) 直接设置状态

onPress={() => this.setState({ myLeader: 'xxx' })}

b) 调用你的 setLeader 函数

onPress={() => this.setMyLeader('xxx')}

【讨论】:

  • @sonicmario 你能把我的回答标记为正确吗?只需单击我的答案旁边的复选图标!谢谢
  • 您的分析器很棒,但我无法标记您的答案。声望低于 15 人的投票会被记录,但不会更改公开显示的帖子分数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 2019-08-23
  • 2021-02-22
  • 2018-09-15
  • 2020-11-18
  • 2018-09-16
相关资源
最近更新 更多