从react-redux 5.0.5导入提供程序导致反应原生空白屏幕
问题描述:
无论我在我的渲染代码中使用提供程序还是不使用提供程序,我都会看到空白屏幕。然后,我发现即使我只是从react-redux导入提供程序,我也会得到一个空白屏幕。但是如果我注释掉,这些应用程序就可以成功运行。从react-redux 5.0.5导入提供程序导致反应原生空白屏幕
正如官方回购建议,我已检查没有安装npm ls react
的重复反应模块,并且react-redux的版本高于5,这应该与react-native一起工作。
我应该如何解决问题? 谢谢。
App.js:
import React from 'react';
import {
Platform,
} from 'react-native';
import { Router, Scene } from 'react-native-router-flux';
import { Provider } from 'react-redux';
import Home from './pages/Home';
import Chat from './pages/Chat';
export default class App extends React.Component {
render() {
return (
<Router>
<Scene key='root' style={{paddingTop: Platform.OS === 'ios' ? 64 : 54}}>
<Scene key='home' title='Home' component={Home}/>
<Scene key='chat' title='Chat' component={Chat}/>
</Scene>
</Router>
);
}
}
的package.json依赖关系:
"dependencies": {
"async-storage": "^0.1.0",
"body-parser": "^1.18.1",
"classnames": "^2.2.5",
"cookie": "^0.3.1",
"es6-promise": "^4.1.1",
"express": "^4.15.4",
"firebase": "^3.9.0",
"jsonwebtoken": "^8.0.1",
"mkdirp": "^0.5.1",
"moment": "^2.18.1",
"mongoose": "^4.11.11",
"morgan": "^1.8.2",
"multer": "^1.3.0",
"nodemailer": "^4.1.0",
"normalizr": "^3.2.3",
"object-assign": "^4.1.1",
"passport": "^0.4.0",
"passport-facebook": "^2.1.1",
"passport-jwt": "^3.0.0",
"prop-types": "^15.5.10",
"react": "16.0.0-alpha.12",
"react-native": "0.47.0",
"react-native-gifted-chat": "0.0.10",
"react-native-router-flux": "^4.0.0-beta.21",
"react-redux": "5.0.5",
"react-router-redux": "^4.0.8",
"redux": "^3.7.2",
"redux-form": "^7.0.4",
"redux-logger": "^3.0.6",
"redux-persist": "^4.9.1",
"redux-thunk": "^2.2.0",
"serialize-javascript": "^1.4.0",
"superagent": "^3.6.0",
"validator": "^8.2.0",
"webpack-isomorphic-tools": "^3.0.4"
}
}
答
你为什么不使用反应的成分。下面请看
import React, { Component } from 'react'
使用反应,终极版的连接如
import { connect } from 'react-redux'
和
export default connect(mapStateToProps, {sampleActionHere})(ComponentsName)
答
我觉得我已经通过升级反应,终极版到5.0.6解决了这个问题。
我不确定,但我认为扩展React.Component和Component没有区别。而且,我只在较低级别的组件(如我的示例中的Home和Chat)中使用连接。 顺便说一句,事实证明,我只需要更新react-redux来解决我的问题。 谢谢。 –
我正在使用较低级别的连接。但我只使用反应中的组件,因为没有必要使用react-redux。很高兴你解决它。欢呼! –