onPress не считывает функции-обработчики

#react-native #post #event-handling #react-native-flatlist #onpress

#реагировать-родной #Публикация #обработка событий #react-native-плоский список #onpress #react-native

Вопрос:

Я пытаюсь передать две вещи в свои функции on press. Первая часть устанавливает состояние в идентификатор элемента, на который был сделан щелчок, что, в свою очередь, мне понадобится для второй функции (POST-запроса).Установленное состояние выполнено успешно, но запрос POST даже не был выполнен. Мне нужно сохранить часть setState внутри onPress, потому что это единственное место, где у меня есть доступ к элементу, на который нажимается. Есть идеи, почему не запускается вторая функция? Есть обходные пути? Я относительно новичок в react native, поэтому любые идеи будут очень полезны. Спасибо!

 handlePress=()=> {
    debugger
    fetch('http://localhost:3000/user_resources', {
          method: 'POST',
          headers: {
              'Content-Type': 'application/json',
              Accept: 'application/json'
          },
          body: JSON.stringify({
              resource_id: this.state.eventId,
              user_id: this.props.users.id
          })
      })
          .then(res => res.json())
          .then(data2 => {
              this.props.addUserResource(data2)
          })
  }

  header = () => {
  return <Text style={styles.header}>Hello, {this.props.users.name}</Text>
  }
 
  render(){
    console.log(this.state)
     return(
       <>
      <Button title="Add A New Resource" onPress={() => this.props.navigation.navigate('Add A New Resource',{topicId:this.props.route.params.topicId})} style={styles.listitem} />
      <FlatList style={styles.flatlist} keyExtractor={(item)=> item.id.toString()} data={anoda} ItemSeparatorComponent = { this.FlatListItemSeparator } renderItem={({item}) => {
       return <TouchableOpacity><Text onPress={() => this.props.navigation.navigate('Add A New Resource',{topicId:item.id})} style={styles.listitem}>{item.name}</Text><Button title="worku?" onPress={()=> {this.setState({eventId:item.id})}}/></TouchableOpacity>
      }
    }
      ListHeaderComponent = {this.header}/>
     </>)
   }
}
  

Комментарии:

1. Эй, я не нашел никакого кода, к которому вы обращаетесь this.handlePress . На обоих onPress вы переходите к новому экрану.

2. @praveen-me привет, в строке, где есть осязаемая непрозрачность, ближе к концу есть еще одна кнопка, вот где у меня проблема