-1
votes

Passer des données à une fonction de réagir de la carte

Je suis un peu de difficulté à transmettre des données à une fonction de carte et je ne suis pas sûr de savoir où je vais mal.

im obtenir tous les utilisateurs lorsque le composant monte, mais après avoir reçu les utilisateurs, je tente d'ajouter un const. Tout cela fonctionne, mais dans le constructeur, lorsque je tente de cartographier la matrice, cela ne semble pas le chercher. P>

class UserManagement extends Component {

    fetchUsers() {
        axios.get('http://apiyall.com/users')
            .then(res => {
                const dataTable = res.data;
            })
            .catch(err => console.log(err));
    }

    componentDidMount() {
        this.fetchUsers();
    }

    constructor(props) {
        super(props);
        this.state = {
            data: dataTable.map((prop, key) => {


1 commentaires

Quelle est votre structure d'état attendue pour la cartographie?


3 Réponses :


0
votes

Constructeur est appelé avant ComposantDidMount . Donc, vous ne pouvez pas vous attendre à la valeur de DataTable dans le constructeur car il est défini après cela.

Vous pouvez définir l'état dans ComponentDidMount en utilisant ce.SetState et initialise simplement l'état dans le constructeur.


0 commentaires

0
votes

constructeur n'exécute qu'une seule fois dans un cycle de vie de composant, au moment du composant monte . Après cela, vous devez utiliser setstate pour modifier l'état .

dans le constructeur Vous pouvez uniquement initialiser l'état comme, < / p> xxx

dans votre fonction fetchusherers Vous devez réellement régler l'état , xxx


0 commentaires

1
votes

Constructeur n'est exécuté qu'une seule fois avant le composantDidmount dans le cycle de vie du composant. Dans le constructeur, vous pouvez initialiser l'état et lier les fonctions. Et si vous souhaitez itérer le tableau avec la fonction "Carte", vous devez recevoir des données des accessoires.

Vous devez modifier le code comme suit: P>

constructor(props) {
    super(props);
    this.state = {
        data: []
    }
}

componentDidMount() {
    this.fetchUsers();
}

fetchUsers() {
    axios.get('http://apiyall.com/users')
    .then(res => {
        this.setState({data: res.data})  //set the state here.
    })
    .catch(err => console.log(err));
}

render() {
    this.state.data.map(() => {...});
}


0 commentaires