Сбой связывания: SyntaxError Неожиданный токен, ожидаемая реакция

renderScene ={SceneMap({
'1':() =>  <FirstRoute {...this.state.data}/>,
'2':() =>  <SecondRoute {...this.state.data,...this.props.navigation}/>

вот полный код

render() {

  if(!this.state.loading){
      return (
        <View
          style={{
            flex: 1,
          }}>
          <StatusBar
             backgroundColor="mediumpurple"
             barStyle="light-content"/>
          <TabView
            style={styles.container}
            navigationState={this.state}
            renderScene ={SceneMap({
              '1':() =>  <FirstRoute {...this.state.data}/>,
              '2':() =>  <SecondRoute {...this.state.data, ...this.props.navigation}/>,
            })}
            renderHeader={this._renderHeader}
            onIndexChange={index => this.setState({ index })}
          />

        </View>
      );

  }else{
    return (
        <View style={styles.loadingContainer}>
          <ActivityIndicator size="large" color="#0000ff" />
        </View>
    );
  }
 }
}

1 ответ

Это {...a, ...b} не является выражением javascript, поэтому он выдает ошибку " Неожиданный токен".

Вы можете использовать один из следующих:

  • <SecondRoute {...{...this.state.data,...this.props.navigation}} />
  • const mergedObjects = {...this.state.data,...this.props.navigation}

    <SecondRoute {...mergedObjects}/>

  • <SecondRoute {...this.state.data} {...this.props.navigation} />

Другие вопросы по тегам