подключение реагирует на родную express - PullRequest
0 голосов
/ 09 января 2020

Я только начал с React-Native. Я использую экспо и express. Я пытаюсь подключить фронт к задней части и запрос GET. Я получаю:

'RootErrorBondary': границы ошибок должны реализовывать getDerivedStateFromError ().

В этом методе вернуть обновление состояния для отображения сообщения об ошибке или fallbackUI.

спасибо!

Это мое приложение. js

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

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      greetings: [],
    };
  }

  componentDidMount() {
    axios.get('/api/v1').then(function (response) {
      const greetings = response.data;
      this.setState({ greetings });
      console.log(greetings);
    })
  }

  render() {
    return (
      <View style={styles.container}>
        <Text>{greatings}</Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

export default App;

1 Ответ

0 голосов
/ 09 января 2020

Вы не можете отображать массив непосредственно в текстовом компоненте. Вы можете отобразить его.

  render() {
    return (
      <View style={styles.container}>
        {
          this.state.greetings.map((item, index) => (
            <Text key={index.toString()}>{item}</Text>
          ))
        };
      </View>
    );
  }

Или вы можете просто выполнить stringfy и отобразить его с помощью компонента Text:

  render() {
    return (
      <View style={styles.container}>
        <Text>{JSON.stringify(this.state.greetings)}</Text>
      </View>
    );
  }

Обратите внимание, что переменная состояния может получить доступ только с помощью this.state. Вы не можете напрямую получить доступ к greeting.

...