我正在尝试在我真正的 Android 设备上运行 React Native 应用程序。我在跑步前检查了我的设备
adb devices
List of devices attached
3357425441473098 device
Run Code Online (Sandbox Code Playgroud)
我开始于
npx react-native start
Run Code Online (Sandbox Code Playgroud)
并在其他控制台中
npx react-native run-android
Run Code Online (Sandbox Code Playgroud)
但出现错误..
Task :app:installDebug FAILED
10:25:40 V/ddms: execute: running am get-config
10:25:40 V/ddms: execute 'am get-config' on '3357425441473098' : EOF hit. Read: -1
10:25:40 V/ddms: execute: returning
Installing APK 'app-debug.apk' on 'SM-G960U - 9' for app:debug
10:25:40 D/app-debug.apk: Uploading app-debug.apk onto device '3357425441473098'
10:25:40 D/Device: Uploading file onto device '3357425441473098'
10:25:40 D/ddms: Reading file permision of /home/user/react-native/awesomeProject/android/app/build/outputs/apk/debug/app-debug.apk as: rw-rw-r-- …Run Code Online (Sandbox Code Playgroud) 您好,我正在尝试客户直接在 ReactJS Web 应用程序中将他们的图片上传到亚马逊 s3。我在后端生成预签名网址,如下所示
def get_presigned_url(file_extension, content_type, user_id) do
config = get_aws_s3_config()
bucket = get_bucket_name()
filename = create_s3_file_name(file_extension, user_id)
query_params = [{"ContentType", content_type}]
ExAws.S3.presigned_url(config, :put, bucket, filename, query_params: query_params)
end
Run Code Online (Sandbox Code Playgroud)
生成的网址如下所示。
在客户端我这样做
async function uploadImage(url, data, headers) {
const response = await fetch(url, {
method: "PUT",
headers: headers,
body: data
});
return response;
}
const handleUpload = e => {
const formData = new FormData();
formData.append("image", file);
const myHeaders = new Headers();
myHeaders.append("ContentType", file.type);
uploadImage(presignedUrl, …Run Code Online (Sandbox Code Playgroud) 我正在使用 google_sign_in 插件。
它运行良好。但我有一个问题。
我需要将 idToken 发送到后端服务器来验证用户。
但 Google 登录响应中的 IdToken 为空。
代码很简单
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;
print("Printing google user info");
print(googleAuth.accessToken);
print(googleAuth.idToken);
print(googleUser.displayName);
Run Code Online (Sandbox Code Playgroud)
其他属性具有正确的值。但 idToken 为空
我用谷歌搜索了这个并说我需要网络客户端 ID。
所以我做了
final _googleSignIn = GoogleSignIn(clientId: webClientId);
你们能帮忙吗?
我错过了什么吗?
我正在尝试使用 apollo 在 React Native 中实现登录。在反应本机应用程序中
const SIGN_IN = gql`
mutation($username: String!, $password: String!) {
signin(password: $password, username: $username) {
user {
username
}
token
}
}
`;
Run Code Online (Sandbox Code Playgroud)
// 代码已缩写。
function LoginScreen() {
const [signIn, { loading, error }] = useMutation(SIGN_IN, {
onCompleted({ data }) {
if (loading) console.log("Loading.....");
console.log("Printing data");
console.log(data.signin.token);
}
});
}
Run Code Online (Sandbox Code Playgroud)
后端服务器运行良好。但我在控制台日志中收到错误消息
[Unhandled promise rejection: TypeError: Cannot read property 'signin' of undefined]
Stack trace:
screens/LogInScreen.js:36:6 in useMutation$argument_1.onCompleted
node_modules/@apollo/react-hooks/lib/react-hooks.cjs.js:635:25 in callOncomplete
Run Code Online (Sandbox Code Playgroud)
数据未定义。
所以我尝试了{ data && console.log(data.signin.token) …
我需要你的帮助。
我的第一个查询结果是使用 ListView 小部件显示的。我调用 fetchMore 函数(来自 graphql_flutter)以获得更多结果。但它似乎刷新了整个小部件,而不是仅仅在 ListView 底部添加新结果。(它显示正在加载小部件)
我对 Flutter 很陌生。
这是查询小部件中的构建器。
builder: (QueryResult result,
{VoidCallback refetch, FetchMore fetchMore}) {
if (result.hasException) {
return Text(result.exception.toString());
}
if (result.loading) {
return Center(
child: CircularProgressIndicator(),
);
}
List items = result.data['playlistItems']['items'];
String token = result.data['playlistItems']['nextPageToken'];
token = token ?? "";
FetchMoreOptions opts = FetchMoreOptions(
variables: {'nextPageToken': token},
updateQuery: (previousResultData, fetchMoreResultData) {
final List<dynamic> newItems = [
...previousResultData['playlistItems']['items']
as List<dynamic>,
...fetchMoreResultData['playlistItems']['items']
as List<dynamic>
];
fetchMoreResultData['playlistItems']['items'] = newItems;
return fetchMoreResultData;
});
return Stack( …Run Code Online (Sandbox Code Playgroud) 我第一次尝试阿波罗。我的后端服务器是 Phoenix 框架(长生不老药)。并在http://localhost:4000/api 中运行 所以我尝试在我的代码中使用 apollo 进行第一个查询。
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import ApolloClient from 'apollo-boost';
import { gql } from 'apollo-boost';
const client = new ApolloClient(
{
uri: 'http://localhost:4000/api',
}
);
client.query({
query: gql`
{
users {
name
email
}
`}
}).then(result => console.log(result));
Run Code Online (Sandbox Code Playgroud)
但我有一个错误。
[Network error]: TypeError: Network request failed
node_modules/expo/build/logs/LogSerialization.js:166:14 in _captureConsoleStackTrace
node_modules/expo/build/logs/LogSerialization.js:41:24 in serializeLogDataAsync
... 9 more stack frames from framework internals
[Unhandled promise rejection: Error: Network error: …Run Code Online (Sandbox Code Playgroud) react-native ×3
elixir ×2
flutter ×2
graphql ×2
reactjs ×2
absinthe ×1
amazon-s3 ×1
android ×1
apollo ×1
build.gradle ×1
dart ×1
gradle ×1
react-apollo ×1