Javascript 无法在React Native中显示数组

Javascript 无法在React Native中显示数组,javascript,arrays,react-native,Javascript,Arrays,React Native,当我按下按钮时,我希望将值“abc”附加到所选的数组标记中,然后{this.list()}将打印出我的数组。 但现在当我按下按钮时,什么也没有显示出来 有人知道我的代码有什么问题吗 export default class App extends Component { constructor(props) { super(props); this.state = { selectedTags: [] } }

当我按下
按钮时,我希望将值“abc”附加到所选的数组标记中,然后
{this.list()}
将打印出我的数组。
但现在当我按下按钮时,什么也没有显示出来

有人知道我的代码有什么问题吗

export default class App extends Component {
      constructor(props) {
        super(props);
        this.state = {
          selectedTags: []
        }
  }

  list() {
  return this.state.selectedTags.map(function(tags, i){
    return(
      <View key={i}>
        <Text>{tags.name}</Text>
      </View>
    );
  });
}

  render() {
    return (
      <View style={styles.container}>
        <TouchableOpacity  onPress={() => this.state.selectedTags.push('abc')} key = {1} style={styles.buttonContainer}>
              <Text style={styles.buttonText}> Button </Text>
         </TouchableOpacity>

          <Text> {this.list()} </Text>
      </View>
    );
  }
}
导出默认类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
所选标记:[]
}
}
列表(){
返回此.state.selectedTags.map(函数(标记,i){
返回(
{tags.name}
);
});
}
render(){
返回(
this.state.selectedTags.push('abc')}键={1}样式={styles.buttonContainer}>
按钮
{this.list()}
);
}
}

这是因为您从不调用setState,这将触发组件的重新呈现

而不是使用:

onPress={() => this.state.selectedTags.push('abc')}
尝试:


这是因为您从不调用setState,这将触发组件的重新呈现

而不是使用:

onPress={() => this.state.selectedTags.push('abc')}
尝试:


函数列表仅在数组中推送数据,但不重新启动视图,因此必须使用设置状态强制更新

您可以像这样实现onpress功能

onPress = () =>{
  this.state.selectedTags.push("abc");
  this.setState({selectedTags : this.state.selectedTags});
}

函数列表仅在数组中推送数据,但不重新启动视图,因此必须使用设置状态强制更新

您可以像这样实现onpress功能

onPress = () =>{
  this.state.selectedTags.push("abc");
  this.setState({selectedTags : this.state.selectedTags});
}

为什么使用concat而不是push?因为
push
更改数组但不返回任何内容
concat
不会更改数组,而是返回一个新数组,并在新数组末尾添加提供的值。因此,为了分配新的
selectedTags
属性,我需要使用concat为什么使用concat而不是push?因为
push
更改数组但不返回任何内容
concat
不会更改数组,而是返回一个新数组,并在新数组末尾添加提供的值。因此,为了分配新的
selectedTags
属性,我需要使用concat