2016-02-25 31 views
5

Poniżej znajduje się część mojego komponentu reagowania. Mam rekwizyty nazwane dniami aż do wejścia w ten komponent, który zawiera liczbę. W tym przykładzie jest przekazać numer 0, co powoduje funkcji fontWeight powracającego 700React Native - NSNumber nie może być przekonwertowany na 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; 
    } 

pojawia się następujący błąd:

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

Jestem zakładając, to dlatego, że font-weight oczekuje wartość ma być w formacie ciągu. Jaka jest właściwa poprawka?

Z góry dziękuję!

Odpowiedz

13

W funkcji

return weight * 100; 

fontWeight() może się:

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

fontWeight wymaga ciąg znaków, a nie całkowitą.

Tylko upewnij się zwracać ciąg:

return (weight * 100).toString(); 

Upewnij się także, że zmienna „ciężar” nie jest równa zeru.

1

Można użyć StyleSheet z modułem react-native, coś takiego:

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>