以下は私の反応コンポーネントの一部です。数が含まれているこのコンポーネントに入ってくるdaysUntilという名前の小道具があります。この例では、0を渡しているため、fontWeight関数は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;
}
次のエラーが発生します。
NSNumberタイプのJSON値「700」はNSSTringに変換できません。
Font-weightは値が文字列形式であることを想定しているため、これを想定しています。これに対する適切な修正は何ですか?
前もって感謝します!
FontWeight()関数内
return weight * 100;
おそらくなる:
var val= weight * 100;
return val.toString();
同様の問題があり、画像のURIではなくアイコンを渡していました。コードは_icon = 'path/to/icon'
_を受け入れるように記述されています。
_<Image source={{ uri: icon }}>
_
しかし、私はicon = require('path/to/icon')
を渡しており、jsxを
_<Image source={icon}>
_
fontWeightには、整数ではなく文字列値が必要です。
文字列を返すことを確認してください:
return (weight * 100).toString();
「重み」変数がゼロに等しくないことも確認してください。
次のようなreact-native
モジュールのStyleSheet
を使用できます。
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>
反応フォントの太さは文字列でなければなりません、
反応文書では、彼らは特に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.
について言及しています
次のように選択できます
const boldText = {
fontWeigth: '100'
}
または
const boldText = {
fontWeight: 'bold'
}
このコードであなたは言うことができます
style: function() {
return {
fontWeight: this.fontWeight()
}
},
fontWeight: function() {
var weight = 7 - this.props.daysUntil;
return (weight * 100).toString();
}