簡體   English   中英

React-Native子組件不會在父組件內呈現信息

[英]React-Native the child component don't render the information within the parent component

我正在開發一個使用ScrollView的React Native應用程序。 我想顯示一些項目(帶有標題和子項的卡片)。

當我必須渲染每個項目時,問題就來了,而父母卻可以,而孩子卻沒有。

我不知道問題可能出在哪里,這是我的代碼:

    import React, {Component} from 'react';
    import {View, Text} from 'react-native';

    const mismo =[
     'Mismo',
     'Mismo',
     'Mismo',
     'Mismo',
     'Mismo'
    ];


    class Mismo extends Component {


     renderMismo2(){
       mismo.map((item) =>{
       return(
         <View>
           <Text>{item}</Text>
         </View>
       )
     })
    }

  render(){
    return(
      <View>
      {this.renderMismo2()}
      </View>
    );
  }
}

export default Mismo;

================================

import React, {Component} from 'react';
import {View, Text, ScrollView} from 'react-native';
import {Card} from 'react-native-elements';

import PriceCard from '../components/PriceCard';
import Mismo from '../components/Mismo';


class OrderPricingCard extends Component{
  renderAllPrices(){
    this.props.data.orders.map((item, i) => {
      return(
        <View>
          <PriceCard
            key={item.transporterName}
            data={item}
          />
        </View>
      );
    })
  }

  renderMismo(){
    return(
      <Mismo />
    );
  }

  render () {
    return (
      <Card
        containerStyle={styles.cardContainer}
        title={`Pedido: ${this.props.data.id}`}
      >
        <ScrollView
          horizontal
        >
            {this.renderMismo()}

            {this.renderAllPrices()}



        </ScrollView>
      </Card>
    );
  }
}

const styles = {
  cardContainer:{
    borderRadius: 10,
    shadowColor: "#000",
    shadowOffset: {
        width: 0,
        height: 2,
    },
    shadowOpacity: 0.25,
    shadowRadius: 3.84,
    elevation: 5,
  }

}

export default OrderPricingCard;

這是容易犯的錯誤! 我已經做過幾次了。 發生的事情是您忘記了在每個組件中找到的render方法( renderMismo2()renderAllPrices() )的return語句。 盡管map方法正確地具有return語句,但實際上您並未從函數本身返回任何內容。

如果要在React render()方法的return上方使用console.log()任何一個函數調用,則在控制台中會看到undefined的內容。

這是他們看起來更正的內容。

renderAllPrices(){
    // added the 'return' keyword to begin the line below
    return this.props.data.orders.map((item, i) => {
      return(
        <View>
          <PriceCard
            key={item.transporterName}
            data={item}
          />
        </View>
      );
    })
  }

 renderMismo2(){
   // same here, added the 'return' keyword
   return mismo.map((item) =>{
   return(
     <View>
       <Text>{item}</Text>
     </View>
   )
 })
}

我在React Native沙箱中測試了以上內容,並且可以正常工作。 希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM