首页 文章

不推荐使用React-Native Navigator,并且已从此程序包中删除

提问于
浏览
5

我收到以下错误 .

Navigator已弃用,已从此包中删除 . 它现在可以从 react-native-deprecated-custom-components 安装和导入,而不是react-native . 在http://facebook.github.io/react-native/docs/navigation.html了解替代导航解决方案

然后我会更新react-native-deprecated-custom-components包但问题没有解决

的package.json

"dependencies": {
    "react": "16.0.0-alpha.6",
    "react-native": "0.44.2",
    "react-native-deprecated-custom-components": "^0.1.0",
    "sendbird": "^3.0.30"
},

main.js

var React = require('react-native')
var {
  Navigator,
  StyleSheet
} = React;

var Login = require('./components/login');

import NavigationExperimental from 'react-native-deprecated-custom-components';

var ROUTES = {
  login: Login
};

module.exports = React.createClass({
  renderScene: function(route, navigator) {
    var Component = ROUTES[route.name];
    return <Component route={route} navigator={navigator} />;
  },
  render: function() {
    return (

      <NavigationExperimental.Navigator
        style={ styles.container }
        initialRoute={ {name: 'login'} }
        renderScene={this.renderScene}
        configureScene={ () => { return Navigator.SceneConfigs.FloatFromRight; } }
      />
    );
  }
});

var styles = StyleSheet.create({
  container: {
    flex: 1
  }
});

任何人都让我知道解决这个问题

3 回答

  • 0

    我用下面的代码来解决我的问题

    main.js

    var React = require('react-native')
    var {
      Navigator,
      StyleSheet
    } = React;
    
    var Login = require('./components/login');
    
    import NavigationExperimental from 'react-native-deprecated-custom-components';
    
    var ROUTES = {
      login: Login
    };
    
    module.exports = React.createClass({
      renderScene: function(route, navigator) {
        var Component = ROUTES[route.name];
        return <Component route={route} navigator={navigator} />;
      },
      render: function() {
        return (
    
          <NavigationExperimental.Navigator
            style={ styles.container }
            initialRoute={ {name: 'login'} }
            renderScene={this.renderScene}
            configureScene={ () => { return NavigationExperimental.Navigator.SceneConfigs.FloatFromRight; } }
          />
        );
      }
    });
    
    var styles = StyleSheet.create({
      container: {
        flex: 1
      }
    });
    

    任何人都让我知道解决这个问题

    我改变了台词

    configureScene={ () => { return NavigationExperimental.Navigator.SceneConfigs.FloatFromRight; } }
    

    configureScene={ () => { return NavigationExperimental.Navigator.SceneConfigs.FloatFromRight; } }
    

    解决我的问题

  • 2

    您现在应该使用Stack Navigator

    import { StackNavigator } from 'react-navigation';
    
    const SimpleApp = StackNavigator({
      Home: { screen: HomeScreen },
      Chat: { screen: ChatScreen },
    });
    
     <Button
              onPress={() => navigate('Chat')}
              title="Chat with Lucy"
            />
    

    参考:https://reactnavigation.org/docs/intro/

  • 6

    如果有人看到这个甚至没有尝试使用 Navigator ,那可能是因为你有一条 import

    import * as RN from 'react-native'

    (Webstorm特别习惯于自动插入这些)

    这会为所有RN的导出调用 get ters,从而触发 Navigator 的错误 . 而是使用:

    import {Things, You, Need} from 'react-native'

相关问题