2016-02-25 1 views
5

Ниже приведена часть моего компонента реакции. У меня есть реквизит с именем daysUntil, входящий в этот компонент, который содержит число. В этом примере время передается номер 0, что приводит к функции FontWeight возвращающегося 700React Native - NSNumber не может быть преобразован в 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; 
    } 

Я получаю следующее сообщение об ошибке:

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

Я предполагаю, что это потому, что начертание шрифта ожидает значение должно быть в строчном формате. Какая уместность для этого?

Спасибо заранее!

ответ

13

В функции FontWeight()

return weight * 100; 

возможно становится:

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

FontWeight требует строковое значение, а не целое число.

Просто убедитесь, что вы возвращаете строку:

return (weight * 100).toString(); 

Кроме того, убедитесь, что переменная «вес» не равен нулю.

1

Вы можете использовать StyleSheet из react-native модуля, что-то вроде этого:

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>