我正在尝试运行一个使用 Metro Bundler 的现有 React Native 项目。我的操作系统是 Ubuntu 20.04,我尝试在物理 Android 设备和我使用 Android Studio 创建的 Android 模拟器上运行该应用程序。
我已经成功克隆了项目的 repo,安装了它的依赖项 ( yarn
),构建了应用程序 ( react-native run-android
),并在我的手机和模拟器上打开了应用程序。但是,运行react-native start
错误说TypeError: cb.apply is not a function
. 这是我在运行时得到的完整信息和错误react-native start
:
$ react-native start
warn Your project is using deprecated "rnpm" config that will stop working from next release. Please use a "react-native.config.js" file to configure the React Native CLI. Migration guide: https://github.com/react-native-community/cli/blob/master/docs/configuration.md
warn The following packages use deprecated "rnpm" config that …
Run Code Online (Sandbox Code Playgroud) 我想测试一个使用全局fetch
方法的小型 React Web 应用程序。
fetch
我尝试以这种方式嘲笑:
global.fetch = jest.spyOn(global, 'fetch').mockImplementation(endpoint =>
Promise.resolve({
json: () => Promise.resolve(mockResponse)
})
);
Run Code Online (Sandbox Code Playgroud)
...但是模拟似乎被忽略,而内置fetch
似乎被使用:Error: connect ECONNREFUSED 127.0.0.1:80 ...
看起来像是对内置的失败调用fetch
。
然后我尝试使用jest.fn
而不是jest.spyOn
:
global.fetch = jest.fn(endpoint =>
Promise.resolve({
json: () => Promise.resolve(mockResponse)
})
);
Run Code Online (Sandbox Code Playgroud)
...并惊讶地发现了不同的错误。现在似乎已经考虑了模拟,但同时无法正常工作:
TypeError: Cannot read property 'then' of undefined
8 | this.updateTypes = this.props.updateTypes;
9 | this.updateTimeline = this.props.updateTimeline;
> 10 | fetch('/timeline/tags')
| ^
11 | .then(res => res.json())
12 | .then(tags => …
Run Code Online (Sandbox Code Playgroud) 我想在运行 Alpine Linux 的 Docker 容器上安装 Flutter。
我写了以下内容Dockerfile
:
FROM alpine
RUN apk add bash curl file git zip
RUN git clone https://github.com/flutter/flutter.git
ENV PATH="$PATH:/flutter/bin"
RUN flutter channel stable
Run Code Online (Sandbox Code Playgroud)
一切都很顺利,直到最后一步,我得到:
Step 5/5 : RUN flutter channel stable
---> Running in f8e764b1e091
Downloading Dart SDK from Flutter engine 82b4ae86d69b4bad10a42ad380f2a538d97ffb38...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 174M 100 174M 0 0 23.1M 0 0:00:07 0:00:07 --:--:-- 23.8M
Building …
Run Code Online (Sandbox Code Playgroud) 在 Flutter 2.0.5 应用程序的上下文中,我想使用 Riverpod 管理其状态,我想我可以这样声明StateNotifierProvider
:
import 'package:flutter_riverpod/flutter_riverpod.dart';
final counterProvider = StateNotifierProvider<CounterStateNotifier>((ref) => CounterStateNotifier());
class CounterStateNotifier extends StateNotifier<int> {
CounterStateNotifier([int count = 0]) : super(count);
void increment() => state++;
}
Run Code Online (Sandbox Code Playgroud)
但是 Android Studio(以及后来的 Dart 编译器)抱怨我声明counterProvider
变量的行:
类型 'StateNotifierProvider' 用 2 个类型参数声明,但给出了 1 个类型参数。
删除中的<CounterStateNotifier>
类型参数StateNotifierProvider<CounterStateNotifier>
会删除错误。然而,试图读取提供者和调用其increment
方法(设置() => context.read(counterProvider).increment()
为onPressed
一个ElevatedButton
,然后按下按钮)给出以下运行时错误:
'increment'
method not found
Receiver: 0
Arguments: []
Run Code Online (Sandbox Code Playgroud)
为什么context.read(counterProvider)
返回int
状态而不是通知程序?我的问题的第一部分中提到的类型参数错误背后的原因是什么?
我应该提到我正在网络上运行我的应用程序(使用flutter run -d Chrome
)。
我想解析一个LaTeX文档,并用一个特殊的命令标记它的一些术语.具体来说,我有一个术语列表,比如说:
Astah
UML
use case
...
Run Code Online (Sandbox Code Playgroud)
我想用这个自定义命令标记文本中第一次出现的Astah : \gloss{Astah}
. 到目前为止,这是有效的(使用Python):
for g in glossary:
pattern = re.compile(r'(\b' + g + r'\b)', re.I | re.M)
text = pattern.sub(start + r'\1' + end, text, 1)
Run Code Online (Sandbox Code Playgroud)
它工作正常.
但后来我发现:
%
)\section{term}
或\paragraph{term}
)所以我尝试了这个:
for g in glossary:
pattern = re.compile(r'(^[^%]*(?!section{))(\b' + g + r'\b)', re.I | re.M)
text = pattern.sub(r'\1' + start + r'\2' + end, text, 1)
Run Code Online (Sandbox Code Playgroud)
但它匹配注释中的术语,前面是其他字符,它也匹配标题内的术语.
关于正则表达式的"贪婪",我不明白吗?或者问题可能在别的地方?
举个例子,如果我有这个文字:
\section{Astah}
Astah …
Run Code Online (Sandbox Code Playgroud) Next.JS 13.3.1 似乎没有获取我next.config.js
文件的以下部分:
images: {
remotePatterns: [
{
protocol: "https",
hostname: "s3-eu-central-1.amazonaws.com",
port: "",
pathname: "/mycompany-data-bucket-dev/**",
},
],
},
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,令人惊讶的是,它提到了与我的配置中相同的协议和主机名:
Error: Invalid src prop (https://s3-eu-central-1.amazonaws.com/mycompany-data-bucket-dev/media/images/default-female/default-female-500-500.jpg) on `next/image`, hostname "s3-eu-central-1.amazonaws.com" is not configured under images in your `next.config.js`
See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host
Run Code Online (Sandbox Code Playgroud)
我重新启动了本地开发服务器并仔细检查了错误消息。我的应用程序在本地运行localhost:3000
。
我怎样才能进一步调查这个问题?例如,是否可以在引发错误之前在运行时打印我的 Next.JS 配置?
我想要一系列TextFormField
s,用户可以通过在软键盘上按“下一步”(或在模拟器上测试时按硬键盘上的 Tab)来导航。我期待以下 Flutter 应用程序能够正常工作:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'TextFormField Problem Demo',
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Test Homepage'),
),
body: Column(children: <Widget>[
TextFormField(
onFieldSubmitted: (_) => FocusScope.of(context).nextFocus(),
textInputAction: TextInputAction.next,
),
TextFormField(
onFieldSubmitted: …
Run Code Online (Sandbox Code Playgroud) 我正在使用Travis CI构建Java Web应用程序,并尝试将其部署到AWS Elastic Beanstalk实例。构建进展顺利:
The command "mvn test -B" exited with 0.
Run Code Online (Sandbox Code Playgroud)
...但是部署失败并显示:
Fetching: dpl-1.8.31.gem (100%)
Successfully installed dpl-1.8.31
1 gem installed
invalid option "--secret_access_key="
failed to deploy
Run Code Online (Sandbox Code Playgroud)
我的.travis.yml
文件似乎有效,并且已使用travis CLI工具将我的AWS 加密秘密访问密钥存储在其中:
travis encrypt secret_access_key="< my secret access key >"
Run Code Online (Sandbox Code Playgroud)
那为什么不能部署到AWS?特拉维斯为什么告诉我invalid option "--secret_access_key="
?
我检查了Travis dpl
文档中的Elastic Beanstalk,他们说密钥的选项应该是--secret-access-key=...
,带破折号(而不是像我Travis日志中的下划线invalid option "--secret_access_key="
)。
如何部署我的应用程序?
deployment amazon-web-services travis-ci amazon-elastic-beanstalk
我想使用Cytoscape.js,所以我复制粘贴了他们的教程:
var cy = cytoscape({
container: document.getElementById('cy')
});
Run Code Online (Sandbox Code Playgroud)
...我得到了这个(在 Firefox 控制台上):
TypeError: r is null
Run Code Online (Sandbox Code Playgroud)
和这个(在 Safari 控制台上):
TypeError: null is not an object (evaluating 'r.className')
Run Code Online (Sandbox Code Playgroud)
该错误在 Chrome 上仍然存在,始终指示 的第 39 行cytoscape.min.js
。
当然,我有一个 HTML<div id="cy"></div>
元素。
为什么我会收到此错误?另外,我尝试添加一些节点,它们在 JSFiddle 上呈现,但不在浏览器上呈现......
我想学习如何使用Riverpod,因此为此我正在实现一个小应用程序,该应用程序显示项目列表和一个按钮,该按钮在点击时将虚拟项目添加到列表中。
按下以下应用程序中的按钮将按预期工作(添加一个虚拟项目,并且更改会立即反映在 UI 中):
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
void main() => runApp(const ProviderScope(child: MyApp()));
class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key);
@override
Widget build(BuildContext context) => MaterialApp(home: HomePage());
}
final itemsProvider = StateNotifierProvider((ref) => ItemsList());
class ItemsList extends StateNotifier<List<String>> {
ItemsList([List<String> items]) : super(items ?? []);
void add(String item) => state = [...state, item];
}
class HomePage extends ConsumerWidget {
const HomePage({Key key}) : super(key: key);
@override
Widget build(BuildContext context, ScopedReader watch) { …
Run Code Online (Sandbox Code Playgroud) 我(递归地)定义了一个用于实现二叉树的类(在Java中):
class BinaryTree {
protected int key;
protected BinaryTree left, right;
// some methods...
}
Run Code Online (Sandbox Code Playgroud)
我想从中实现二进制搜索树,如下所示:
class BinarySearchTree extends BinaryTree {
// ...
public BinarySearchTree search(int x) {
if (x == key)
return this;
if (x < key)
if (left != null)
return left.search(x); // (*)
else
if (right != null)
return right.search(x); // (*)
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
但当然标记的行// (*)
不会编译left
而right
只是BinaryTree
s,没有任何search()
方法.
所以我想知道如果那里有一种方法可以定义BinarySearchTree
从BinaryTree
超类 …
我正在关注这个教程。本教程首先加载一个监督数据集(使用tfds.load
with as_supervised=True
):
(train_data, test_data), info = tfds.load(
'imdb_reviews/subwords8k',
split = (tfds.Split.TRAIN, tfds.Split.TEST),
with_info=True, as_supervised=True)
Run Code Online (Sandbox Code Playgroud)
然后教程建议像这样洗牌和填充数据集:
电影评论的长度可以不同。我们将使用该
padded_batch
方法来标准化评论的长度。
train_batches = train_data.shuffle(1000).padded_batch(10)
test_batches = test_data.shuffle(1000).padded_batch(10)
Run Code Online (Sandbox Code Playgroud)
...但不幸的是,该padded_batch
方法需要一个额外的参数,教程似乎忘记了:
Traceback (most recent call last):
File "imdb_reviews.py", line 14, in <module>
train_batches = train_data.shuffle(1000).padded_batch(10)
TypeError: padded_batch() missing 1 required positional argument: 'padded_shapes'
Run Code Online (Sandbox Code Playgroud)
尽管错误堆栈表明这padded_shapes
是缺少的参数,但从教程中我认为可以公平地推断出缺少的参数实际上是batch_size
(应该在 之前padded_shapes
)。
我认为这可能很容易解决,如下所示:
Traceback (most recent call last):
File "imdb_reviews.py", line 14, in <module>
train_batches = train_data.shuffle(1000).padded_batch(10) …
Run Code Online (Sandbox Code Playgroud) flutter ×4
dart ×2
python ×2
riverpod ×2
alpine-linux ×1
android ×1
class ×1
cytoscape.js ×1
deployment ×1
docker ×1
fetch ×1
focus ×1
inheritance ×1
java ×1
javascript ×1
jestjs ×1
latex ×1
linux ×1
next.js ×1
oop ×1
react-native ×1
reactjs ×1
recursion ×1
regex ×1
state ×1
tensorflow ×1
travis-ci ×1
unit-testing ×1