2017-05-31 42 views
0

Ich versuche, React Router für ein reaktionseigenes Projekt zu verwenden. In meinem index.js Datei ich habe:ReactRouter: Eigenschaft "imageId" von undefined kann nicht gelesen werden

<NativeRouter> 
    <View> 
     <Route path="/" component={MainComponent} /> 
     <Route path="/images/:imageId/" component={ShowImage} /> 
    </View> 
    </NativeRouter> 

Und im DisplayComponent ich habe:

<View}> 
     {items.map(item => { 
     return (
      <Link to="images/7326" key={item.id}> 
      <Image 
       source={{uri: 'https://someImageLink...'}} 
      /> 
      </Link> 
     ) 
     })} 
    </View> 

Und zeigen Bild sieht wie folgt aus:

export default class ShowImage extends Component { 
    render() { 
    return (
     <View> 
     <Text>{this.props.params.imageId}</Text> 
    </View> 
    ); 
} 
} 

Wenn ich auf einer geladenen klicken Bild bekomme ich folgende Fehlermeldung:

can not read "imageId" of undefined. 

Ich vermute also, dass die Requisiten nicht reingereicht werden, aber ich kann nicht herausfinden, wo ... Vielen Dank für die Hilfe.

+0

Was ist die URL der Seite, wenn Sie den Fehler sehen? –

+0

Versuchen Sie, den 'Pfad' im Router zu'/images /: imageId' und 'zu' im Link zu'/images/7326' zu ändern. –

+0

Es handelt sich um eine reaktionsnative App, daher weiß ich nicht, wie ich die URL überprüfen soll .. –

Antwort

0

In der neuesten Version von react-router versuchen können, die ich Sie verwenden bin zu raten, die Strecke params vom match prop zur Verfügung. So erhalten, um das imageId

Verwenden

<Text>{this.props.match.params.imageId}</Text> 
0

Sie dieses

export default class ShowImage extends Component { 
    render() { 
    return (
     <View> 
     <Text>{this.props.match.params.imageId}</Text> 
    </View> 
    ); 
} 
Verwandte Themen