Текстовые строки должны отображаться внутри компонента ,

#javascript #reactjs #react-native

#javascript #reactjs #реагировать -родной

Вопрос:

У меня есть следующий код, в котором я использую компонент Featured внутри карты, а значения карты приведены в featured array .

 import * as React from 'react';
import { StyleSheet, TextInput, Image, Button, Pressable } from 'react-native';

import EditScreenInfo from '../components/EditScreenInfo';
import { Text, View } from '../components/Themed';
import Featured from '../components/Featured';

export default function TabOneScreen({navigation}) {
  return (
    <View style={styles.container}>
      <Text style={styles.title}>Discover Music to Own</Text>
      <View style={styles.separator} lightColor="#eee" darkColor="rgba(255,255,255,0.1)" />
          <TextInput style={styles.searchbar}
      placeholder="Search Music to Own"/>
          {featured.map((feat) =>
              {return (<Featured
                       artistName= {feat.artistName}
                       mediaName= {feat.mediaName}
                       uri= {feat.uri}
                  />
)}
              )}     </View>
  );
}


const featured = [{uri:"https://i.guim.co.uk/img/media/68659a5732b6a11833ad642325c94276e73bfd17/1518_282_1533_920/master/1533.jpg?width=1200amp;height=900amp;quality=85amp;auto=formatamp;fit=cropamp;s=55a7cd37c94dacf41f82d43e83352818",
                   artistName:"Beyonce",
                   mediaName:"Good Album Name"}]


 

Однако я получаю сообщение об ошибке, которое:

 Text strings must be rendered within a <Text> component.
 

Как исправить эту ошибку?

Комментарии:

1. Как выглядит ваш пользовательский Text компонент?

2. Пожалуйста, добавьте также весь код импорта.

Ответ №1:

Ошибка, скорее всего, зависит от <Text> того, что вы используете из Themed , в противном случае я добавил ключ к карте и отформатировал код.

 import * as React from 'react';
import { StyleSheet, TextInput, Image, Button, Pressable } from 'react-native';

import EditScreenInfo from '../components/EditScreenInfo';
import { Text, View } from '../components/Themed';
import Featured from '../components/Featured';

export default function TabOneScreen({ navigation }) {
    return (
        <View style={styles.container}>
            <Text style={styles.title}>Discover Music to Own</Text>
            <View style={styles.separator} lightColor="#eee" darkColor="rgba(255,255,255,0.1)" />
            <TextInput 
                style={styles.searchbar}
                placeholder="Search Music to Own" 
            />
            {
                featured.map((feat, index) => {
                    return (
                        <Featured
                            artistName={feat.artistName}
                            mediaName={feat.mediaName}
                            uri={feat.uri}
                            key={index}
                        />
                    )
                })
            }
        </View>
    )
}

const featured = [{
    uri: "https://i.guim.co.uk/img/media/68659a5732b6a11833ad642325c94276e73bfd17/1518_282_1533_920/master/1533.jpg?width=1200amp;height=900amp;quality=85amp;auto=formatamp;fit=cropamp;s=55a7cd37c94dacf41f82d43e83352818",
    artistName: "Beyonce",
    mediaName: "Good Album Name"
}]
 

Ответ №2:

Просто оберните внутри div , как в

 <div>
   {featured.map((feat) =>
       {return (<Featured
            artistName= {feat.artistName}
            mediaName= {feat.mediaName}
            uri= {feat.uri}
         />
       )}
   )}
</div>
 

Комментарии:

1. div в react native?

2. Вы уверены? div тег используется в react native?