2016-12-09 4 views
1

J'essaie d'obtenir le nouveau composant Algolia react-instantsearch en utilisant reac-native.Utiliser Algolia reac-instantsearch avec reac-native

J'ai suivi le guide et je suis complètement bloqué.

En fait, chaque fois que j'essaie d'ajouter mon composant <SearchBox /> l'intérieur du composant <InstantSearch />, mon application meurt avec un attendu d'une classe de composant, obtenu [object Object]. Pour autant que je sache, je branche <SearchBox /> au connecteur connectSearchBox, donc je ne suis pas sûr de ce qui se passe.

code (je faire ont des valeurs réelles pour l'indice appId, apiKey, &):

import React, {Component} from 'react'; 
import { 
    AppRegistry, 
    StyleSheet, 
    Text, 
    View, 
    ListView, 
    TextInput, 
    Image, 
} from 'react-native'; 
import {InstantSearch} from 'react-instantsearch/native'; 
import {connectSearchBox} from 'react-instantsearch/connectors'; 
import * as Styles from '../../styles/'; 

const SearchBox = connectSearchBox(({currentRefinement, refine}) => 
    <TextInput 
    style={{height: 40, borderColor: 'gray', borderWidth: 1}} 
    onChangeText={(text) => refine(text)} 
    value={currentRefinement} 
    />); 

export default class InfiniteSearch extends Component { 
    constructor(props) { 
    super(props); 
    } 

    render() { 
     return (
      <View style={styles.container}> 
       <InstantSearch 
       className="container-fluid" 
       appId="appId" 
       apiKey="apiKey" 
       indexName="indexName" 
       > 
       <SearchBox /> 
       </InstantSearch> 
      </View> 
     ); 
    } 
} 

const styles = StyleSheet.create({ 
    container: { 
     padding: 10, 
    }, 
}); 
+0

Il correspond certainement avec le guide de ce que je vois ... où dit-il l'erreur est? –

+0

@MattAft La trace de la pile ne pointe sur rien de spécifique dans mon code. Commence par '' -> 'createInternalComponent' ->' instantiateReactComponent' -> 'peformInitialMount' mais continue ensuite pour les pages et les pages de contenu interne de réaction. –

+0

Cela est certainement dû au composant '' dans ''. Si je supprime cela, pas d'erreurs. –

Répondre

0

Essayez d'envelopper TextInput dans le SearchBox:

const SearchBox = connectSearchBox(({currentRefinement, refine}) => (
    <TextInput 
    style={{height: 40, borderColor: 'gray', borderWidth: 1}} 
    onChangeText={(text) => refine(text)} 
    value={currentRefinement} 
    /> 
)); 
+0

Lance toujours la même erreur –