Ci-dessous une partie de mon composant de réaction. J'ai un accessoire nommé daysUntil à venir dans ce composant qui contient un nombre. Dans cet exemple, nous passons le nombre 0, ce qui a pour résultat que la fonction fontWeight renvoie 700
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;
}
Je reçois l'erreur suivante:
La valeur JSON '700' de type NSNumber ne peut pas être convertie en NSSTring.
Je suppose que c'est parce que font-weight s'attend à ce que la valeur soit au format chaîne. Quelle est la solution appropriée pour cela?
Merci d'avance!
Dans votre fonction fontWeight ()
return weight * 100;
devient peut-être:
var val= weight * 100;
return val.toString();
fontWeight requiert une valeur de chaîne et non un entier.
Assurez-vous simplement de renvoyer une chaîne:
return (weight * 100).toString();
Assurez-vous également que votre variable "poids" n'est pas égale à zéro.
J'ai eu un problème similaire, où je passais dans une icône au lieu d'un uri à une image. Le code a été écrit pour accepter icon = 'path/to/icon'
:
<Image source={{ uri: icon }}>
mais je passais dans icon = require('path/to/icon')
et je devais passer le jsx à
<Image source={icon}>
Vous pouvez utiliser le module StyleSheet
à partir du module react-native
, 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>
en réaction le poids de la police doit être une chaîne,
dans le document de réaction, ils ont spécifiquement mentionné que fontWeight enum('normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900')
Specifies font weight. The values 'normal' and 'bold' are supported for most fonts. Not all fonts have a variant for each of the numeric values, in that case the closest one is chosen.
afin que vous puissiez choisir comme suit
const boldText = {
fontWeigth: '100'
}
ou
const boldText = {
fontWeight: 'bold'
}
dans ce code, vous pouvez dire
style: function() {
return {
fontWeight: this.fontWeight()
}
},
fontWeight: function() {
var weight = 7 - this.props.daysUntil;
return (weight * 100).toString();
}