我正在尝试从 react-native 运行 android 应用程序。我已经尝试了来自 react-native github 的带有“react-native init”和“Hello world”应用程序的标准应用程序,但是我在模拟器和设备上都得到了这个错误堆栈:
09-16 14:21:23.334 3441 3486 E AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
09-16 14:21:23.334 3441 3486 E AndroidRuntime: Process: com.deleteme, PID: 3441
09-16 14:21:23.334 3441 3486 E AndroidRuntime: java.lang.IllegalStateException: closed
09-16 14:21:23.334 3441 3486 E AndroidRuntime: at okhttp3.internal.http.Http1xStream$FixedLengthSource.read(Http1xStream.java:374)
09-16 14:21:23.334 3441 3486 E AndroidRuntime: at okio.Buffer.writeAll(Buffer.java:993)
09-16 14:21:23.334 3441 3486 E AndroidRuntime: at okio.RealBufferedSource.readByteArray(RealBufferedSource.java:106)
09-16 14:21:23.334 3441 3486 E AndroidRuntime: at okhttp3.ResponseBody.bytes(ResponseBody.java:128)
09-16 14:21:23.334 3441 3486 E AndroidRuntime: at okhttp3.ResponseBody.string(ResponseBody.java:154)
09-16 14:21:23.334 …Run Code Online (Sandbox Code Playgroud) 嗨,我已经为 android 编写了Hello World程序react-native。我关注了这个https://facebook.github.io/react-native/docs/tutorial.html#content但它在启动应用程序时没有在屏幕上显示“Hello World”。
它正在显示空屏幕。我该如何解决这个问题。
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React, { Component } from 'react';
import {
AppRegistry,
Text
} from 'react-native';
export default class AwesomeProject extends Component {
render() {
return (
<Text>Hello World!</Text>
);
}
}
AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);
Run Code Online (Sandbox Code Playgroud)
E:\React Programming\AwesomeProject>react-native run-android
Starting JS server...
Running C:\Users\ch-e00925\AppData\Local\Android\sdk/platform-tools/adb -s ZY223
8CX5L reverse tcp:8081 tcp:8081
Building and installing the app on the …Run Code Online (Sandbox Code Playgroud) 版本:0.38
只需使用 flex 指定图像样式,没有宽度和高度,但图像不会显示在移动屏幕上。这该怎么做。
<View style={styles.container}>
<Image style={styles.image} source={{uri : 'https://www.baidu.com/img/bd_logo1.png'}}>
</Image>
</View>
const styles = StyleSheet.create({
container: {
flex: 1
},
image: {
flex: 1,
resizeMode: 'contain'
},
});
Run Code Online (Sandbox Code Playgroud) 我正在使用 react native 模块(https://github.com/rusel1989/react-native-bluetooth-serial)与 Arduino 进行蓝牙通信。
一切正常。但是当我按下“重新加载”或由于启用了实时重新加载而重新加载应用程序时,onDestroy不会调用模块的方法。因此,套接字(和流)没有正确处理。
重新加载完成后,我无法再打开蓝牙插座。它需要我禁用和启用蓝牙,或重新启动应用程序。
当我重新加载我的应用程序时,是否有我可以实现的蚂蚁回调或方法可以正确处理这些套接字?
我刚刚开始使用 react-native 并考虑将其用于离线优先应用程序。我将使用 asyncStorage 作为我的本地存储,因为它可以满足我对这个应用程序的所有需求。但是,我进行了一次徒劳的搜索,寻找类似原生 android 的 Sync Adapter 之类的东西,它允许您根据各种条件自动将数据从本地存储传输到远程数据库。
是否有任何库可以轻松导入到我的 RN 项目中以帮助进行数据同步。或者,我不需要任何外部模块,并且 asyncStorage API 已经支持数据同步到远程数据库。
无论哪种方式,我都想知道是否可以在 AsyncStorage 和远程数据库之间同步数据。谢谢你。
我目前使用的是 RN 41.2,我对从 url 调整图像大小有疑问。url 文件可能会变得非常大,通常在 2000x2000 左右,我想将它们显示得更小,大概在 25x25 左右。
'android only' resizeMethod 是否有等效的 iOS Image 道具?
当 resizeMethod='resize' 时,它会在解码前更改大编码图像的大小,因此图像几乎立即以较小的尺寸显示,这很棒。
但是对于iOS,我使用resizeMode(包含,封面等)并且它正确显示图像,但图像实际显示总是需要一些时间,这是完全可以理解的,只是很烦人。
我在这里错过了什么吗?似乎 resizeMode 应该做与 resizeMethod 相同的事情,但显然没有
image react-native react-native-android react-native-ios react-native-image
尝试使用 Android TextInput 组件,但是当文本长于组件大小时,文本会在开始时被截断。
有什么方法可以让我从头开始渲染文本或在开始时设置光标。并且仅在聚焦或选择此组件时将光标设置为结束?
我有一个奇怪的情况,其中有一个按钮,zIndex: 5坐在一个顶部Interactable.View的zIndex: 19。
编辑:它似乎只在顶部。它是可见的。但不是(因为没有更好的术语)可点击。
下面是代码。我在代码中标记了按钮和interactable.view//********************************************************************//
地图.js
import {
StyleSheet,
View,
Text,
FlatList,
TouchableHighlight,
Dimensions,
Platform,
//findNodeHandle,
Image
} from 'react-native'
import React, { Component } from 'react'
import MapView from 'react-native-maps'
import { connect } from 'react-redux'
import {
Button,
Container
} from 'native-base'
import { updateRegion } from './map.action'
import Icon from 'react-native-vector-icons/FontAwesome'
import { toggleMenu } from '../search-page/searchPage.action'
import mapStyle from './style'
import Interactable from 'react-native-interactable'
import { setSelectedShop } from …Run Code Online (Sandbox Code Playgroud) 我知道关于这个问题有很多答案,但我似乎找不到适合我的答案。我正在使用 axios 向我的服务器发送一个 post 请求,但它在 android 中不起作用,尽管它在 ios 中起作用。我目前正在使用服务器 ip 地址(不是本地主机),并且我也在请求时发送标头,但它仍然没有通过 android 的网络请求。
import axios from 'axios';
const SERVER_URL = 'http://serverip:3000';
export function signin({ username, password }) {
return function(dispatch) {
axios.post(`${SERVER_URL}/user/authenticate`, { username, password }, { headers: { 'Content-Type': 'application/json' } })
.then((response) => {
console.log('login response', response);
dispatch({
type: USER_AUTH,
});
AsyncStorage.setItem('token', response.data.token || '');
})
.catch((response) => console.log('user sign in err', response));
};
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
我有一个 React-Native 应用程序,我想使用并行编程(我想使用平板电脑的所有核心)。
我试过paralleljs和hamsters.js图书馆,但他们没有用。一个不支持 RN,另一个目前有一些 Blob 问题。
所以,我决定使用网络工作者。在对其进行了一些搜索(从 MDN 等)之后,我意识到我可能会单独使用网络工作者而不是所有这些库。但是我不能100%确定。还有其他为 RN 设计的库,比如 react-native-workers,但都有很多问题。
我的问题是如何使用纯 JS 代码在 React-Native 应用程序中使用多线程和/或并行编程?或者现在还不可能?
javascript multithreading web-worker react-native react-native-android
react-native ×9
android ×5
javascript ×2
axios ×1
bluetooth ×1
css ×1
image ×1
reactjs ×1
web-worker ×1