React Native - NSNumber无法转换为NSString

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native - NSNumber无法转换为NSString相关的知识,希望对你有一定的参考价值。

以下是我的反应组件的一部分。我有一个名为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();

确保您的“重量”变量不等于零。

另一答案

您可以使用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>
另一答案

反应字体重量应该是一个字符串,

在反应文件中,他们特别提到了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();
  }

以上是关于React Native - NSNumber无法转换为NSString的主要内容,如果未能解决你的问题,请参考以下文章

nsnumber 类型的 json 值“2”无法转换为 nsstring

添加 React-Native-Camera 和 React-Native-Push-Notification 后无法构建 React Native

更新 react-native 后无法使用 react-native-debugger

无法从“App.js”解析“@react-navigation/native”-React Native + 如何解决?

React Native - 当 react-native 版本 > 0.55 时,无法通过 react-native-cli 创建新项目

React Native - pod 安装问题“无法加载此类文件.......node_modules/react-native/scripts/react_native_pods”