Массив не является функцией (оценивая this.props.onPress (e) ') - PullRequest
0 голосов
/ 01 декабря 2018

Это экран ошибки: ЭКРАН ОШИБКИ

Кнопка в коде рендеринга:

<View style={{flex:1}}>
  <Image source={require('../images/plots2.jpg')}
    style={{flex:1,height:null,width:"100%",resizeMode:'contain'}}
  />
  <Button onPress = {this.abc(this.state.items)}
    title="Retrive Database Table"
  />
</View>

Функция в кнопке, называемая здесь кодом:

abc (items) {
  console.log("IN hashir");
  //console.log("Hashir RAN count: "+this.state.countrunHashir);
  //var a=this.state.countrunHashir+1;
  //this.setState(countrunHashir:1);
  //this.state.countrunHashir+=1;

  return(
    items.map(item=>{
      return(
        <Card style={{marginLeft: 5, marginRight:5}}>
          <CardItem header style={{borderBottomWidth:1,borderBottomColor:'#dee0e2'}}>
            <Text style={{backgroundColor:'white',color:'red',fontSize:25,fontWeight:'bold',textAlign:'center',justifyContent:'center'}}>
              Items Recommended For You
            </Text>
          </CardItem>

          <RecommendedCardItem 
            title={item.Title}
            model="has"
            StartingBid="hashir"
            imageUri={require("../images/h1.jpg")}
            rating={3}
          />
          <TouchableOpacity style={{alignContent:'center', backgroundColor:'#b2ff59',width:'100%',borderRadius:25,marginVertical:10,paddingVertical:12 }}>
            <Text style={{fontSize:22, fontWeight:'bold', color:'#ffffff',textAlign:'center',color:'black'}}>Click For More Details</Text>
          </TouchableOpacity>
        </Card>
      );
    })
  );
}

Состояния, инициализированные в коде конструктора:

this.state={
  items:[],
  mainscreenrender:0,
  countrunHashir:0
};

Проблема рендеринга заключается в том, что кнопка хочет визуализировать весь список представлений с использованием массива 'items'.Можете ли вы улучшить код для меня?Был бы очень благодарен вам.

Спасибо!

1 Ответ

0 голосов
/ 01 декабря 2018

Попробуйте предоставить функцию обратного вызова для вашего свойства onPress вместо "value".Ваш код должен выглядеть так:

<Button onPress = {() => this.abc(this.state.items)} 
        title="Retrive Database Table" />
...