如何在react-native中要求下划线

时间:2015-08-25 12:41:51

标签: javascript react-native

反应原生提及的更改日志 https://facebook.github.io/react/blog/2015/04/17/react-native-v0.4.html

  

NPM模块兼容性:NPM上有很多库不依赖于在React Native中真正有用的节点/浏览器内部,例如superagent,underscore,......

但它对我不起作用。 这是我通过package.json安装的方式

# package.json

 "dependencies": {
   "react-native": "*",
   "underscore": "^1.8.3"
   ...

我确实在npm dependecy

中看到了它
# npm ls
├─┬ react-native@0.8.0
|  ...
├── react-native-navbar@0.7.3
└── underscore@1.8.3

它确实适用于其他一些反应组件

这就是我的要求

var _ = require('underscore');

但它不起作用,_未定义

感谢您的任何建议。

4 个答案:

答案 0 :(得分:29)

如果您正在使用ES6模块(如在ReactNative中),正确的方法是使用import语句:

import _ from 'lodash'

let text = _.isUndefined(route.rightButtonText) ? 'Default value' : route.rightButtonText;

答案 1 :(得分:15)

我正在使用像这样的lodash(下划线更多的东西):

  1. 将其添加到package.json中 "lodash": "^3.10.0"

  2. 在组件中你需要写: var _ = require('lodash')

  3. 你已经确定了。

    如果您需要lodash

    ,请参阅以下有关lodash的更多信息

答案 2 :(得分:5)

要在React中成功运行require,这就是我所做的:

  1. 安装下划线。

    2 found
    4 found
    
  2. 在package.json

    中定义依赖项
    npm install underscore
    
  3. 在要使用它的函数中定义下划线。

    "dependencies": {
      "react": "^0.13.*",
      "underscore": "^1.8.3"
    }
    

答案 3 :(得分:1)

我发现了问题,问题是

  

我不使用它

我只需要它并尝试在控制台中测试它。

当我在某个地方使用它时,例如_.map([1, 2, 3], function(num){ return num * 3; })任何地方。

然后我在控制台中测试它,这次确实需要库。

我不确定这是npm require还是react-native行为?

当您不使用库时,即使您需要它,也不需要它。