【问题标题】:Loading the API data into Picker in react native(Function component used)在 react native 中将 API 数据加载到 Picker(使用函数组件)
【发布时间】:2021-07-21 12:21:16
【问题描述】:

我想在 Picker 中显示年份数据。我收到错误为“未定义”。 这是我到目前为止所做的代码。 .

const ShowAtt = (props) => {
  const [year, setYear] =  useState([]);

const yearApi = ()=>{
    fetch('url')
    .then(res=>res.json())
    .then(result=>{
        setYear(result.data);
        console.log(result.data);
        
    }).catch(err=>{
       
    })
}
<Picker style={{borderBottomColor:"black"}}
                    selectedValue={year}
                    onValueChange={newvSuburb => setYear(newvSuburb)} >
        
                    {year.map((item, key)=>(
                        <Picker.Item style={styles.input} 
                        label = {'${item.year}'} 
                        value = {'${item.year}'}
                        key={key} />)
                    )}
            
        </Picker>

这是作为响应获得的数据

{
    "data": [
        {
            "year": 2020
        },
        {
            "year": 2021
        },

    ]
}
       
Error obtained is: Undefined is not a function(near '..year.. map .. .')

【问题讨论】:

    标签: reactjs react-native native picker


    【解决方案1】:

    对象 {newvSuburb} 你是如何在 top 中定义的?

    const ShowAtt = (props) => {
      const [year, setYear] =  useState([]);
    
    const yearApi = ()=>{
        fetch('http://192.168.43.114:8000/api/years/')
        .then(res=>res.json())
        .then(result=>{
           // setYear(result.data);
      /* newvSuburb data here
    */
            console.log(result.data);
            
        }).catch(err=>{
           
        })
    }
    <Picker style={{borderBottomColor:"black"}}
                        selectedValue={year}
                        onValueChange={newvSuburb => setYear(newvSuburb)} >
            
                        {newvSuburb && newvSuburb.map((item, key)=>(
                            <Picker.Item style={styles.input} 
                            label = {'${item.year}'} 
                            value = {'${item.year}'}
                            key={key} />)
                        )}
                
            </Picker>

    【讨论】:

    • 你的意思是我是否在顶部定义了newvSuburb?
    • 所以这个 fetch api 是针对年份列表的,对吧?所以 newvSuburb 应该是你从 api 返回的数据吧?所以也许你的结果数据需要 setYear 并将数据设置为 newvSuburb
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多