首页 > 解决方案 > state.map 不是 React-Native 的函数

问题描述

我在项目中遇到问题,运行apk时出现以下错误:

state.map 不是不使用 .map 的 React-Native 函数。

编码:

import React, { useState, useEffect } from 'react';
import { Text, View, StyleSheet } from 'react-native';
import { Picker } from '@react-native-community/picker';
import axios from 'axios';

const Formulario = () => {
    const [moneda, guardarMoneda] = useState('');
    // este primer state de criptomoneda sirve para saber la seleccion del usuario
    const [criptomoneda, guardarCriptomoneda] = useState('');
    // este segundo muestra el estado de las 10 criptomonedas mas importantes
    const [criptomonedas, guardarCriptomonedas] = useState('');

    useEffect(() => {
        const consultarApi = async () => {
            const url = 'https://min-api.cryptocompare.com/data/top/totaltoptiervolfull?limit=10&tsym=USD';
            const resultado = await axios.get(url);
            guardarCriptomonedas(resultado.data.Data);
            console.log(resultado.data.Data);
        };
        consultarApi();

    }, []);
    console.log(criptomonedas);

    const obtenerMoneda = moneda => {
        guardarMoneda(moneda);
    };

    const obtenerCriptoMoneda = cripto => {
        guardarCriptomoneda(cripto);
    };
});

在“return()”中,问题出现在“criptomonedas.map”中:

<Picker
    selectedValue={criptomoneda}
    onValueChange={cripto => obtenerCriptoMoneda(cripto)}>
    <Picker.Item label="- Seleccione -" value=""/>

    {criptomonedas.map(cripto => (
        <Picker key={cripto.CoinInfo.Id} label={cripto.CoinInfo.FullName} value={cripto.CoinInfo.Name}/>
    ))};
</Picker>

设备上的错误

标签: react-native

解决方案


<Picker
                selectedValue = {moneda}
                onValueChange={  moneda => obtenerMoneda(moneda)  }
                itemStyle={{  height:120 }}
                >
               <Picker.Item label="- Seleccione -" value=''/>
                { ( criptomonedas || [] ).map( cripto=> ( <Picker.Item  key={ cripto.CoinInfo.Id } label={ cripto.CoinInfo.FullName } value={ cripto.CoinInfo.Name }/>) ) }
            </Picker>

推荐阅读