React native 为什么this.setState不是一个函数?
我创建了一个React native 为什么this.setState不是一个函数?,react-native,React Native,我创建了一个包含,我想点击每个可以改变这个状态 但当我单击它时,将显示错误: this.setState is not a function 为什么? 这是我的: 我的国家: constructor(props) { super(props); // this.renderRow = this.renderRow.bind(this); this.state = { tickets: [], selectedOption: '', theaters: [], tes
包含
,我想点击每个
可以改变这个状态
但当我单击它时,将显示错误:
this.setState is not a function
为什么?
这是我的
:
我的国家:
constructor(props) {
super(props);
// this.renderRow = this.renderRow.bind(this);
this.state = { tickets: [], selectedOption: '', theaters: [], test: '' };
}
我尝试创建另一个函数:
testPress = () => {
this.setState({ test: 'test function' });
}
然后像这样使用它:
renderItem({ item }) {
return (
<View style={styles.headerView}>
<TouchableOpacity
onPress={() => {
this.testPress();
}}
>
<Text>{item.cnCity}</Text>
</TouchableOpacity>
</View>
);
}
renderItem({item}){
返回(
{
这是testPress();
}}
>
{item.cnCity}
);
}
它仍然显示相同的错误。为什么?我想不出来
任何帮助都将不胜感激 检查一下这个东西
首先将引用保存到此
你在报纸上看到了吗
<TouchableOpacity
onPress={() => {
context.setState({ test: 'test press' });
}}
>
{
setState({test:'testpress'});
}}
>
为什么这不起作用?
这在js中是一个称为context的关键字,它只依赖于调用者,所以当我们从另一个调用者调用函数时,它将使用函数上下文,其中没有状态
解决方案是绑定函数或保存引用,有时可以使用无名函数
有关更多信息,请访问查看此内容
首先将引用保存到此
你在报纸上看到了吗
<TouchableOpacity
onPress={() => {
context.setState({ test: 'test press' });
}}
>
{
setState({test:'testpress'});
}}
>
为什么这不起作用?
这在js中是一个称为context的关键字,它只依赖于调用者,所以当我们从另一个调用者调用函数时,它将使用函数上下文,其中没有状态
解决方案是绑定函数或保存引用,有时可以使用无名函数
欲了解更多信息,请访问如果您希望平面列表
了解数据道具之外的数据更改,您需要将其设置为外部数据
,尝试一下,并告诉我是否存在问题!嘿,这是一个非常有用的提示。我尝试在data={cityArray}
下添加extraData={this.state}
,虽然它可以工作,但仍然得到相同的错误…这里不是指类,而是指renderItemfunction@nima_moradi索尔,我不明白你在这里的意思。请你再解释一遍好吗?谢谢。如果您想让FlatList
知道数据道具之外的数据更改,您需要将其设置为extraData
,尝试一下,并告诉我是否存在问题!嘿,这是一个非常有用的提示。我尝试在data={cityArray}
下添加extraData={this.state}
,虽然它可以工作,但仍然得到相同的错误…这里不是指类,而是指renderItemfunction@nima_moradi索尔,我不明白你在这里的意思。请你再解释一遍好吗?谢谢。你的代码正在运行。非常感谢。但我以前没有这样用过。因此,如果我想使用this.setState
,我必须将它放入某种react类函数中,或者我应该设置一些变量,比如let context
connectthis
。我说得对吗?感谢您的帮助@nima_moradinin js这是函数值中的一个特殊关键字,仅取决于函数的调用方式,您可以使用bind或我所做的检查。谢谢。这对我很有帮助,祝福。你的代码正在运行。非常感谢。但我以前没有这样用过。因此,如果我想使用this.setState
,我必须将它放入某种react类函数中,或者我应该设置一些变量,比如let context
connectthis
。我说得对吗?感谢您的帮助@nima_moradinin js这是函数值中的一个特殊关键字,仅取决于函数的调用方式,您可以使用bind或我所做的检查。谢谢。这对我帮助很大,祝福。
let context;
class s extends Component{
constructor(props) {
super(props);
// this.renderRow = this.renderRow.bind(this);
this.state = { tickets: [], selectedOption: '', theaters: [], test: '' };
context=this;
}
}
<TouchableOpacity
onPress={() => {
context.setState({ test: 'test press' });
}}
>