小编iti*_*nce的帖子

使用react-native-router-flux和redux,如何更新视图组件中的状态?

问题:

我曾尝试将redux与react-native-router-flux提供的路由结合使用.

简单来说,它不起作用:

  • redux状态修改不会出现在视图中,但可以成功记录到控制台
  • 每次执行操作时,将重新创建包含场景的整个组件树,这会在控制台中产生大量警告,即已创建具有键"xyz"的场景.

我做了什么:

我使用了react-native-router-flux的官方示例应用程序,并添加了一个基于redux的简单反例:

  • 一个简单的状态:"counter"(可能是一个整数)
  • 减速器和动作(增量,减量)

下面我将展示一些代码,但也会在github上找到我的示例应用程序,请随时查看:https://github.com/itinance/react-native-router-flux.在"实施例"指南是原始示例应用程序.而"ExampleRedux"是带有redux堆栈和示例reducers(计数器)的示例的副本,我在这里谈论的是什么.

提供者和商店的主要应用程序组件:

import * as reducers from './components/reducers';

const createStoreWithMiddleware = applyMiddleware(thunk)(createStore);
const reducer = combineReducers(reducers);

const store = createStoreWithMiddleware(reducer);

export default class Example extends React.Component {
    render() {
        return (
            <Provider store={store}>
                <ExampleContainer/>
          </Provider>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

我的减速器:

const initialState = {
  count: 0
};

export default function counter(state = initialState, action = {}) {

  switch …
Run Code Online (Sandbox Code Playgroud)

routing ios react-native redux react-redux

7
推荐指数
1
解决办法
7668
查看次数

如何使用 Android Studio 调试本机反应本机库?

这个问题不是关于如何调试React-Native 应用程序的 javascript-land。它是关于如何在 node_modules-folder 中调试本机库(在这种情况下意味着:JAVA-Code)。

虽然我很容易用 XCode 调试 RN-Applications 的原生 iOS 部分,但我偶然发现了 Android Studio 的各种问题......主要是,将项目导入 Studio 后 node_modules-Folder 不存在,为什么不能设置断点来调试通过。

版本:

  • Android Studio 2.2.2(当前最新版本)
  • react-native 0.38.0(也是最新版本)
  • gradle 1.3.1(从 react-native init 预配置)
  • 还尝试升级到 gradle 2.2.2
  • 安装了包括 NDK 在内的最高版本 23 的 Android SDK 和构建工具

我是如何做到的/重现的步骤

1. 创建新的 React Native 项目:

react-native init debugTest
Run Code Online (Sandbox Code Playgroud)

2. 使用您想要本地调试的本地代码安装第三方库

cd debugTest && 
react-native install react-native-sqlite-storage
Run Code Online (Sandbox Code Playgroud)

3.确保一切都能在android端正常工作:

  • 启动 GenyMotion

  • 启动 AVD

  • 在终端中使用此命令运行应用程序:

    react-native run-android

(这将打开打包程序以及传输 js-bundle 所需的所有其他内容)。如果想省略这一步,需要手动启动打包程序:

node node_modules/react-native/local-cli/cli.js start
Run Code Online (Sandbox Code Playgroud)

4.启动Android Studio …

java android android-studio react-native react-native-android

7
推荐指数
1
解决办法
2798
查看次数

ATTACH DATABASE 在 Android 上给出“数据库已在使用中”

在 iOS 和 Android 上的本机应用程序项目中,我们在 Android 上遇到了sqlite3的问题。我们想要打开两个数据库,并通过ATTACH DATABASE(sql 命令)将一个数据库附加到第二个数据库。

我们所做的:

  1. 打开sqlite3数据库“user.db”(Android设备上的最终本机文件路径是“/data/user/0/com.company.app/databases/user.db”,我们使用android.database.sqlite.SQLiteDatabase

  2. 打开sqlite3数据库“system.db”

  3. 将用户数据库附加到系统数据库:

在 system.db-database 的 SQLiteDatabase-Instance 上,我们执行

ATTACH DATABASE '/data/user/0/com.company.app/databases/user.db' AS dbUser
Run Code Online (Sandbox Code Playgroud)

结果:

这会产生以下错误:

数据库 dbUser 已在使用中(代码 1)

iOS 版 sqlite3 上的相同 sql 语句运行良好,没有任何错误。

为了完整性。使用以下语句打开数据库:

import android.database.sqlite.SQLiteDatabase;

SQLiteDatabase mydb = SQLiteDatabase.openDatabase(dbfile.getAbsolutePath(), null, openFlags);
Run Code Online (Sandbox Code Playgroud)

向 google 询问此类错误消息,很多网站都指出不允许使用 TEMP 作为数据库别名。由于我们使用“dbUser”而不是TEMP,所以应该还有另一个原因。我们现在还无法弄清楚。

有人可以帮忙吗?

database sqlite android

6
推荐指数
1
解决办法
3402
查看次数

Google App Engine:无法在同一个开发者计算机上创建第二个应用程序("该项目已包含App Engine应用程序")

我的SSD上的某个地方是一个持续的,主动管理的Google App Engine项目.我在这台机器上开发它,我总是能够成功部署它gcloud app deploy.

现在我想创建另一个Google App Engine项目.

重现步骤:

  1. 我在我的开发者机器上创建了目录(Mac)

cd mynewproject

  1. 我在谷歌应用引擎控制台中创建了该项目

mynewproject

  1. 然后我想创建新的应用程序如下:

gcloud app create

结果:

但是这会产生以下错误:

$ gcloud app create ERROR:(gcloud.app.create)项目[oldproject]已在区域[europe-west]中包含App Engine应用程序.您可以使用部署应用程序gcloud app deploy.

我很确定我移动到远离目录"oldproject"的另一个目录.

此外,新项目还在Google App Engine控制台中列出了所有其他项目.

如何在同一台机器上处理这个项目而不需要删除我的其他GAE项目?

google-app-engine

6
推荐指数
1
解决办法
2320
查看次数

如何防止tailwindcss和bootstrap等css库影响所见即所得编辑器的html内容(如Tinymce、Ckeditor)?

拥有 TinyMCE 编辑器,它为我提供了正确的 html 标签输出,例如 h1、h2、b、ul、ol、li。像这样:

在此输入图像描述

然而,当我想在我自己的前端(由 TailWindCSS 或 Bootstrap 组成)中准确渲染 TinyMCE 的输出时,每个 html 标签的每种样式看起来都非常简单,具有相同的大小、相同的边距、相同的填充,就像在一个普通的文本元素。

在此输入图像描述

我发现,这些 CSS 框架使用“normalize-css”之类的东西来实现这种外观。但是,尽管我使用的是 Tailwind 和/或 BootstrapCSS,如何在前端恢复 TinyMCE 的 CSS 样式?

html css tinymce bootstrap-4 tailwind-css

6
推荐指数
1
解决办法
3204
查看次数

如何解决“合约不明”问题?OpenSea 无法“理解”ERC1155

我已经部署了一个基于ERC-1155的合约(基于OpenZeppelin),并在此合约上成功铸造了一些 NFT。但当我想在 OpenSea 中使用这些 NFT 时,它总是显示“身份不明的合约”

示例: https: //testnets.opensea.io/assets/0xc7d3e4a5A0c3e14ba8C68ea1b8a99a9dBf3ca76F/2

API 示例:https://testnets-api.opensea.io/api/v1/asset/0xc7d3e4a5A0c3e14ba8C68ea1b8a99a9dBf3ca76F/2/ ?force_update=true

按照他们的官方教程存储库(由于过时的依赖项和其他问题,该存储库不再编译),我添加了一些(可能)OpenSea 特定的函数和数据,OpenSea 可能需要这些函数和数据才能正常工作。然而,OpenSea 能够获取显示 NFT 所需的所有数据,但只要他们说“身份不明的合约”,到目前为止这一切都毫无意义。

我的问题有:

有人已经成功部署了 ERC-1155 并将其与 OpenSea 正确使用而没有出现此问题吗?我们是否需要以某种方式“注册”不基于 ERC-721 的合约?

要重现的代码

import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol";

import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";


contract OwnableDelegateProxy { }

contract ProxyRegistry {
  mapping(address => OwnableDelegateProxy) public proxies;
}


contract MetaCoin is ERC1155, AccessControl, Pausable, ERC1155Burnable {
    bytes32 public constant URI_SETTER_ROLE = keccak256("URI_SETTER_ROLE");
    bytes32 public constant PAUSER_ROLE = …
Run Code Online (Sandbox Code Playgroud)

ethereum solidity opensea

6
推荐指数
2
解决办法
4797
查看次数

502 Bad Gateway:nginx,php5-fpm,175/209 connect()失败(111:连接被拒绝),同时连接到上游

在使用nginxphp5-fpm的Debian Jessie机器上运行shopware 5 ,我们经常得到502 Bad Gateway.这种情况主要发生在后端,当较长的操作像缩略图创建一样工作时,即使这是在单个ajax请求的小块内完成的.

使用64 GB RAM和16个核心的旧服务器正在睡觉,因为它上面没有真正的流量.我们目前使用它就像一个临时系统,除非我们修复了像这样的所有错误.

错误日志:

在nginx-error日志中,可以找到以下行:

[error] 20524#0: *175 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xx.xx, server: domain.com, request: "POST /backend/MediaManager/createThumbnails HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.domain.com", referrer: "http://www.domain.com/backend/"

[error] 20524#0: *175 no live upstreams while connecting to upstream, client: xx.xx.xx.xx, server: domain.com, request: "POST /backend/Log/createLog HTTP/1.1", upstream: "fastcgi://php-fpm", host: "www.domain.com", referrer: "http://www.domain.com/backend/"

[error] 20524#0: *175 connect() failed (111: Connection refused) while connecting to upstream, client: …
Run Code Online (Sandbox Code Playgroud)

php fastcgi nginx shopware

5
推荐指数
1
解决办法
2131
查看次数

ReactNative:babelHelpers.typeof不是函数

在一个现有的项目中,已经运行了好几个月,并且已经在iOS和Android的AppStore中,我们现在已经开始有了这个错误:

babelHelpers.typeof不是一个函数

在此输入图像描述

我们所做的就是尝试将基于RN-0.26的应用程序升级到更新的版本.但即使在回滚后,错误仍然存​​在.

我们清理了守望者,多次重置包装工.这里没有任何帮助.

我们的package.json看起来像这样:

{
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "reset": "rm -rf node_modules/ && npm cache clear && watchman watch-del-all && npm i",
    "start": "node node_modules/react-native/local-cli/cli.js start --reset-cache",
    "testflight": "fastlane beta",
    "android-device": "adb reverse tcp:8081 tcp:8081 && react-native run-android",
    "lint": "jslint **.js",
    "test": "mocha test/",
    "generate-apk": "cd android && ./gradlew assembleRelease && open ./app/build/outputs/apk/",
    "install-apk": "cd android && ./gradlew installRelease",
  },
  "devDependencies": {
    "jshint": "latest",
    "mocha": "latest",
    "eslint": "^2.3.0",
    "eslint-config-standard": "^5.1.0",
    "eslint-config-standard-react": "^2.3.0",
    "eslint-plugin-promise": "^1.1.0",
    "eslint-plugin-react": "^4.1.0", …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 babeljs react-native

5
推荐指数
1
解决办法
2799
查看次数

Composer:如何全局覆盖composer.json的需求?

TL; DR:

我的项目需要库A,A需要B1.B1坏了但是有一个叉子B2.我希望实现即使A需要B1而不是B2,作曲家也会安装B2而不是B1.

怎么做?

更详细:

在symfony项目中,我们需要以下库:

"require": {
   "emanueleminotto/twig-cache-bundle": "1.0.2",
}
Run Code Online (Sandbox Code Playgroud)

该库需要另一个当前已损坏的库:

"require": {
    "asm89/twig-cache-extension": "^1.3"
},
Run Code Online (Sandbox Code Playgroud)

对于已损坏的库,已存在超过4个月的拉取请求,但维护者拒绝合并它.

我的问题是,如果有可能为子依赖关系覆盖依赖关系,那么总是使用修补的fork而不是原始的fork?

对于asm89/twig-cache-extension存在以下带有修复的fork:https://github.com/blackandred/twig-cache-extension

我试图将这个fork添加到我的composer.json并在"存储库"下明确注册了fork:

"repositories": [
    {
        "type": "git",
        "url": "https://github.com/blackandred/twig-cache-extension"
    }
],
Run Code Online (Sandbox Code Playgroud)

并在我的composer-json中添加了依赖项,并将更改后的版本添加到"dev-master":

"require": {
    "asm89/twig-cache-extension": "dev-master",
    "emanueleminotto/twig-cache-bundle": "1.0.2",
}
Run Code Online (Sandbox Code Playgroud)

但是由于emanueleminotto/twig-cache-bundle仍然需要原始库,因此composer忽略fork并安装原始库.

我能在这做什么吗?

php symfony composer-php

3
推荐指数
1
解决办法
1426
查看次数

为什么 Postgres 中的 now() 和 now()::timestamp 对于 CET 和 CEST 时区如此“错误”?

我尝试理解PostgresTIMESTAMP WITH TIMEZONE中使用的一些查询示例。

\n

给出了一些将now结果转换为时区“CET”和“CEST”的时间戳的查询。“CEST”比 CET(夏令时间)早 1 小时

\n

例子:

\n
SELECT 1, now()\nUNION\nSELECT 2, now()::timestamp\nUNION\nSELECT 3, now() AT TIME ZONE \'CET\'\nUNION\nSELECT 4, now()::timestamp AT TIME ZONE \'CET\'\nUNION\nSELECT 5, now() AT TIME ZONE \'CEST\'\nUNION\nSELECT 6, now()::timestamp AT TIME ZONE \'CEST\'\n;\n
Run Code Online (Sandbox Code Playgroud)\n

结果:

\n
    1, 2023-09-10 17:07:10.524389 +00:00\n    2, 2023-09-10 17:07:10.524389 +00:00\n    3, 2023-09-10 18:07:10.524389 +00:00\n    4, 2023-09-10 16:07:10.524389 +00:00\n    5, 2023-09-10 19:07:10.524389 +00:00\n    6, 2023-09-10 15:07:10.524389 +00:00\n
Run Code Online (Sandbox Code Playgroud)\n

所以,之间的区别

\n
SELECT 5, now() AT TIME …
Run Code Online (Sandbox Code Playgroud)

postgresql

3
推荐指数
1
解决办法
139
查看次数