2016-02-25 4 views
5

Ci-dessous une partie de mon composant de réaction. J'ai un accessoire nommé daysUntil venant dans ce composant qui contient un nombre. Dans cet exemple, est en cours de passer le nombre 0, ce qui se traduit par la fonction fontWeight retour 700React Native - NSNumber ne peut pas être converti en NSString

render: function() { 
    return (
     <Text style={this.style()}> 
     {this.props.day} 
     </Text> 
    ) 
    }, 
    style: function() { 
    return { 
     fontWeight: this.fontWeight() 
    } 
    }, 
    fontWeight: function() { 
    var weight = 7 - this.props.daysUntil; 
    return weight * 100; 
    } 

J'obtiens l'erreur suivante:

JSON value '700' of type NSNumber cannot be converted to NSSTring.

Je suppose que c'est parce que font-weight attend la valeur à être en format de chaîne. Quelle est la bonne solution pour cela?

Merci d'avance!

Répondre

13

Dans votre fonction fontWeight()

return weight * 100; 

devient peut-être:

var val= weight * 100; 
return val.toString(); 
2

fontWeight nécessite une valeur de chaîne et non un entier.

Assurez-vous de retourner une chaîne:

return (weight * 100).toString(); 

Assurez-vous également que votre variable « poids » n'est pas égal à zéro.

1

Vous pouvez utiliser StyleSheet du module react-native, quelque chose comme ceci:

import StyleSheet from 'react-native' 

// declare the styles using Stylesheet.create 
const myStyles = StyleSheet.create({marginTop:30}) 

//... some code inside render method 

<Text style={myStyles}> 
     This is an example 
</Text>