React native,在for循环中创建按钮

时间:2018-02-07 14:31:04

标签: javascript reactjs react-native

我正在尝试从eventbrite的API获取一些数据。

数据是事件的名称,名称将插入列表中。

在渲染中,按钮的创建次数与我从API

获得的名称一样多

我在下面几个问题..

  1. 如何将API中的信息添加到数组列表中 - 所以我可以使用索引和值。

  2. 如何在forloop中创建按钮

  3. e.g。

    for ( var i =0; i<5; i++){
     <Button
     onPress={onPressLearnMore}
     title="Learn More"
     color="#841584"
     accessibilityLabel="Learn more about this purple button"/>
    } // % buttons are created. 
    

    这是我的代码。

     export const renderButtons1 = (numOfBtns,title,site,navigated) => {
        const views1 = [];
        for ( var i = 0; i < numOfBtns; i++) {
                views1.push(
                <Button 
                     onPress={(i) => navigate('EventsList', { 
                         Title: title[i]
                    })
                }
                     title = {title[i]}
                     color="#841584"
                 />);
    
    
        }
    componentDidMount(){
    return fetch('https://www.eventbriteapi.com/v3/events/search/location.address=glasgow&token=F7AWKEHKD6BW2TZKWO7N&expand=venue')
      .then((response) => response.json())
      .then((responseJson) => {   
          for(var x in responseJson.events){       
              this.setState({
                  state : this.state[Events].push(responseJson.events[x][0][0]["text"],"\n",)
     });
    }})
    .catch((error) => {
        console.error(error);
    });
    }
    
    render() {
            need to make buttons as many as the number of gotten name from API 
    }
    

1 个答案:

答案 0 :(得分:2)

  1. 对于问题1,api数据的数组形式将取决于数据在发送到您的应用程序之前的结构。你可能不得不对此有所了解。

  2. 在循环中渲染视图,尝试

    const renderButtons = () => {
    const views = [];
    for ( var i =0; i<5; i++){
     views.push(
        <Button
           key={i}
           onPress={onPressLearnMore}
           title="Learn More"
           color="#841584"
           accessibilityLabel="Learn more about this purple button"
        />);
    } // % buttons are created. 
    
    return views;
    }
    
  3. 在渲染方法中调用renderButtons()

相关问题