2015-08-25 21 views
10

Il registro delle modifiche di reagire nativo menziona https://facebook.github.io/react/blog/2015/04/17/react-native-v0.4.htmlCome richiedere sottolineatura nel reagire nativo

NPM modules compatibility: There are a lot of libraries on NPM that do not depend on node/browser internals that would be really useful in React Native, such as superagent, underscore, ...

ma non funziona per me. E 'come installo, attraverso package.json

# package.json 

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

E in effetti vedo nel NPM dependecy

# npm ls 
├─┬ [email protected] 
| ... 
├── [email protected] 
└── [email protected] 

E lo fa il lavoro per qualche altro reagiscono componenti

è il modo Richiedo

var _ = require('underscore'); 

Ma non funziona, _ non è definito

Grazie per qualsiasi consiglio.

+0

stai usando nello stesso file? puoi incollare un codice nella tua domanda? – WebQube

+0

No, la libreria 'underscore' si trova nella cartella' node_modules', altre librerie che ho usato come 'react-native-keyboardevents',' react-native-navbar' tutte sono anch'esse in 'node_modules'. Ma loro lavorano. Non so qual è la differenza tra di loro –

+0

1. Forse stai provando ad usarlo da un altro file? un file in cui non hai incluso il 'carattere di sottolineatura '? 2. magari provare a lavorare con i punti di rottura del browser. cmd + d nel tuo simulatore e usa la scheda fonti per eseguire il debug di questo. – WebQube

risposta

11

Sto usando lodash (sottolineano con più roba) come questo:

  1. Aggiungere questo al package.json "lodash": "^3.10.0"

  2. Nella componente è necessario solo scrivere: var _ = require('lodash')

E tu sei pronto.

Ecco più informazioni lodash se avete bisogno di lodash

1

ho trovato il problema, il problema è

I do NOT use it

ho appena lo richiedono e cercare di provarlo in console.

Quando lo uso da qualche parte, come _.map([1, 2, 3], function(num){ return num * 3; }) ovunque.

Quindi lo provo in console, questa volta richiede la libreria.

Non sono sicuro che questo sia NPM che richiede o reagisce al comportamento nativo?

Quando non si utilizza una libreria, anche se lo si richiede, non sarà necessario.

3

Per eseguire richiedono con successo in Reagire, questo è quello che ho fatto:

  1. installazione di sottolineatura.

    npm install underscore 
    
  2. Definire una dipendenza in package.json

    "dependencies": { 
        "react": "^0.13.*", 
        "underscore": "^1.8.3" 
    } 
    
  3. Definire sottolineare all'interno della funzione in cui si desidera utilizzarlo.

    render() { 
        let _ = require('underscore') 
        let buttonStyle = _.clone(button); 
    } 
    
+4

Non citarlo su questo, ma non penso che sia molto saggio fare una richiesta sul metodo di rendering. –

12

Se si utilizza il modulo ES6 (come in ReactNative) il modo corretto è quello di utilizzare l'istruzione import:

import _ from 'lodash' 

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