我使用django作为后端,并为应用程序做出反应原生.当应用程序在react-native app中打开时componentDidMount(),该方法将通过url请求django服务器:
export default class App extends React.Component {
constructor(props) {
super(props)
}
componentDidMount() {
this.fromServer()
}
fromServer() {
var headers = new Headers();
headers.append('Accept', 'application/json');
let a = fetch('http://xxx.xxx.xx.xx:8080/posts/', headers)
.then(function(response) {
console.log('fetched...')
if (response.status !== 200) {
console.log('There was a problem. Status Code: ' + response.status);
return;
}
response.json().then(function(data) {
console.log(data);
});
}
)
.catch(function(err) {
console.log('Fetch Error :-S', err);
});
}
render() {
return (
<View>
<ListView dataSource=?????></ListView>
</View>
);
}
}
Run Code Online (Sandbox Code Playgroud)
服务器将响应一组json对象.像这样:
[
{ …Run Code Online (Sandbox Code Playgroud) javascript django react-native react-native-listview react-native-android
将expo版本更新为31.0.0后,我无法再运行我的应用程序。我需要此升级才能提供iOS 12版本的支持。尝试构建Android应用后,您将无法再使用它。
我的package.json如下所示:
{
"name": "myapp",
"version": "0.1.0",
"private": true,
"devDependencies": {
"react-native-scripts": "1.13.1",
"jest-expo": "^31.0.0",
"react-test-renderer": "16.3.0-alpha.1"
},
"main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
"scripts": {
"start": "react-native-scripts start",
"eject": "react-native-scripts eject",
"android": "react-native-scripts android",
"ios": "react-native-scripts ios",
"test": "jest"
},
"jest": {
"preset": "jest-expo"
},
"dependencies": {
"axios": "^0.18.0",
"expo": "^31.0.4",
"react": "16.5.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-31.0.1.tar.gz",
"react-native-image-slider": "^2.0.3",
"react-native-onesignal": "^3.1.4",
"react-native-progress": "^3.4.0",
"react-native-render-html": "^3.9.3",
"react-navigation": "^1.5.11"
}
}
Run Code Online (Sandbox Code Playgroud)
app.json看起来像:
{
"expo": {
"sdkVersion": "31.0.0",
"name": "myapp",
"slug": "myapp",
"version": "0.1.1",
"isDetached": true,
"detach": …Run Code Online (Sandbox Code Playgroud) java android android-studio react-native-android android-studio-3.0
我正在使用 expo 构建一个 react-native 应用程序,但是,我有一个错误,因此我无法继续构建该应用程序。我什至在错误消息中提到的 node_modules 中查找文件。我正在使用 react-native-gesture-handler 进行屏幕导航。如果我卸载了 react-native-gesture-handler 并删除了导航代码,这会解决我的错误吗?我该如何解决?
应用程序.js
import React, { Component } from 'react';
import { StackNavigator } from 'react-navigation';
import Plan from './screens/Plan';
import Home from './screens/Home';
const AppNavigator = StackNavigator({
PlanScreen: { screen: Home },
HomeScreen: { screen: Plan }
});
export default class App extends Component {
render() {
return (
<AppNavigator/>
)
}
}
Run Code Online (Sandbox Code Playgroud)
主页.js
import React, { Component } from 'react';
import { View, Text, Button, TextInput } from 'react-native'; …Run Code Online (Sandbox Code Playgroud) react-native react-native-android react-native-navigation expo react-datepicker
这个错误突然开始出现。
Node : v10.16.3
React native : 0.60.5
react-native-cli: 2.0.1
Run Code Online (Sandbox Code Playgroud)
捆绑失败:错误:无法
stream从/Users/username/React Native/SampleApp/node_modules/browser-stdout/index.js以下位置解析模块:模块stream在 Haste 模块映射中不存在
它给出了这一行的错误:
var WritableStream = require('stream').Writable
Run Code Online (Sandbox Code Playgroud)
我尝试通过 npm 安装“流”
npm install stream
Run Code Online (Sandbox Code Playgroud)
然后其他类似的错误开始出现。
我正在为我的纯RN 0.61.2应用程序使用React-Navigation。当我在调试模式下使用它时,该应用程序运行完美。但是,在发布模式下,当我尝试打开抽屉导航菜单或在选项卡菜单中向下滚动时,应用程序会立即崩溃。
依赖项:
...
"dependencies": {
"@react-native-community/async-storage": "^1.6.2",
"@react-native-community/netinfo": "^4.4.0",
"@react-native-community/slider": "^2.0.2",
"react": "16.9.0",
"react-native": "0.61.2",
"react-native-admob": "^2.0.0-beta.6",
"react-native-gesture-handler": "^1.4.1",
"react-native-reanimated": "^1.3.0",
"react-native-screens": "1.0.0-alpha.23",
"react-native-vector-icons": "^6.6.0",
"react-navigation": "^4.0.10",
"react-navigation-drawer": "^2.2.2",
"react-navigation-stack": "^1.9.3",
"react-navigation-tabs": "^2.5.5"
},
...
Run Code Online (Sandbox Code Playgroud)
我已经将这些代码行添加到android/app/build.gradle的依赖项中:
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
Run Code Online (Sandbox Code Playgroud)
在 App.js 中,我试过
import {enableScreens} from 'react-native-screen';
enableScreens();
Run Code Online (Sandbox Code Playgroud)
并且
import {useScreens} from 'react-native-screen';
useScreens();
Run Code Online (Sandbox Code Playgroud)
用2.0.0-alpha.1,2.0.0-alpha.3和1.0.0-alpha.23版本react-native-screens。
然而,我仍然得到相同的结果:调试模式完美运行,释放模式在抽屉导航滑动或标签导航滚动后急剧崩溃。
我使用adb logcat并看到的解决方案 …
android react-native react-native-android react-native-navigation
在我的 React Native 应用程序中,我有一个很棒的字体图标。我想旋转它。需要帮助。
import React from 'react'
import { View } from 'react-native';
import Icon from 'react-native-vector-icons/FontAwesome5';
const InfoBox = () => {
return (
<View >
<Icon name={'hand-holding-usd'} size={20}/>
</View>
)
}
export default InfoBox;
Run Code Online (Sandbox Code Playgroud) 我正在尝试将标题的颜色和状态栏的图标更改为黑色。因此,根据 react-native status-bar 文档,我将其设置barStyle为dark-content但没有任何变化。
<StatusBar barStyle="dark-content" backgroundColor={'white'} />
好的,所以 Google 告诉我们“未声明后台位置访问权限”并且不让我们发布我们的应用程序。我们没有使用背景位置,所以我们试图完全消除它。
当然我的清单没有它:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="com.android.vending.BILLING" />
<uses-feature android:name="android.hardware.location.gps"/>
Run Code Online (Sandbox Code Playgroud)
我在任何地方都搜索过任何可以将 ACCESS_BACKGROUND_LOCATION 添加到我们的应用程序的内容,但一无所获。
使用银搜索器:
ag ACCESS_BACKGROUND_LOCATION .
Run Code Online (Sandbox Code Playgroud)
我已经检查了责备报告的线索,并对任何带有“背景”一词的内容进行了倒推,但无济于事:android/app/build/intermediates/manifest_merge_blame_file/myAppRelease/manifest-merger-blame-myapp-release-report 。文本
不过,我确实找到了一些额外的权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)
但我在那里没有看到任何红旗..
我试过节点删除选项:
<manifest ...xmlns:tools="http://schemas.android.com/tools"...>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)
但没什么。
我也运行了 aapt2
$ aapt2 d permissions android/app/build/outputs/apk/myapp/release/app-myapp-release.apk
package: com.myapp
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.ACCESS_COARSE_LOCATION'
uses-permission: name='android.permission.ACCESS_FINE_LOCATION'
uses-permission: name='android.permission.SYSTEM_ALERT_WINDOW'
uses-permission: name='com.android.vending.BILLING'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.ACCESS_WIFI_STATE'
uses-permission: name='android.permission.WAKE_LOCK'
Run Code Online (Sandbox Code Playgroud)
这并没有告诉我更多..
我还观看了谷歌发布的关于背景位置的整个 YouTube 视频,阅读了官方文档,并检查了每个堆栈溢出帖子 - 但他们只是推荐我已经采取的步骤。
这是一个很累的过程!我累极了。我最好的猜测是我们的依赖项是问题之一,但我没有很好的线索来确定它可能是哪一个。
真的很感激一些新鲜的眼睛..也许有人用下面的这些包之一遇到了这个问题,并且会像,就是这样!删除它!
否则,它会回到绝望的搜索和基于最少信息的蛮力重建。
"dependencies": …Run Code Online (Sandbox Code Playgroud) android android-manifest android-permissions react-native react-native-android
react-native ×9
android ×4
debugging ×1
django ×1
expo ×1
java ×1
javascript ×1
npm ×1
statusbar ×1
stylesheet ×1