React Native сделай запрос в api через ответ навигации - PullRequest
0 голосов
/ 05 марта 2019

Main.js

import React, { Component } from 'react';
import api from '../service/api';
import { View, Text, FlatList, TouchableOpacity, StyleSheet } from 'react-native';

export default class Main extends Component {
    static navigationOptions = {
        title: 'JSHunt',
    };

    state = {
        lista: [],
    };

    componentDidMount() {
        this.loadProducts();
    }

    loadProducts = async () => {
        const response = await api.get("/tarefa/");
        const { lista } = response.data;
        this.setState({ lista });
    };

    renderItem = ({ item }) => (
        <View style={styles.listaContainer}>     
            <Text style={styles.listaDescription}>{item}</Text>
            <TouchableOpacity style={styles.listaButton} onPress={() => {
                this.props.navigation.navigate("Tarefa", { tarefa: item});
            }}>
                <Text style={styles.textButton}>Acessar</Text>
            </TouchableOpacity>
        </View>
    );

    render() {
        return (
            <View style={styles.listaContainer}>     
                <FlatList
                    contentContainerStyle={styles.list}   
                    data={this.state.lista}
                    keyExtractor={item =>item}
                    renderItem = {this.renderItem}
                />
            </View>
        );
    }
}

Tarefa.js

import React from 'react';

import { Text} from 'react-native';

const Tarefa = ({navigation }) => {    
    console.log(navigation.state.params.tarefa);
    return (
        <Text>{navigation.state.params.tarefa}</Text>
    );   
};


export default Tarefa;

В основном я делаю запрос на API, который возвращает мне список, когда я нажимаю на один иззначения в списке переходят на новый экран, который представляет собой задачу, а с этим значением мне нужно сделать новый запрос, это будет тип детализации.

Но я не могу сделать новый запросЯ могу только показать значение, которое должно быть вызвано для нового запроса в "navigation.state.params.tarefa"

останется, например

http://localhost:8080/tarefa/navigation.state.params.tarefa

или как оно отображается на экране

http://localhost:8080/tarefa/1



Main.JS
http://localhost:8080/tarefa/
    {"lista":["1","2","3","4"]}



Tarefa.js
    http://localhost:8080/tarefa/1
    {"id":"1","city":"teste"}

Main.js Я сделал все, что есть в моем массиве, это "lista".В "Tarefa.js" я должен перечислить ваши данные.Но я не знаю, как я могу получить доступ к API снова, с помощью навигации

...