小编gke*_*ley的帖子

Saas:单实例、多实例、单租户、多租户?

我一直在阅读有关实例和租户以及 Saas 架构的内容。我的问题如下(如果您发现我对以下任何术语有错误,请更正):

1)实例:一个软件的实例是否只是该软件的一个副本,有自己的数据库?还有比这更重要的事情吗?

2)租户:租户是对单个实例共享一组通用访问权限的用户/用户组吗?

3)单实例:如果 Saas 提供商提供单实例服务,这是否意味着他们只创建其软件的单个实例?或者这是否意味着可以有多个实例,但每个实例可以为多个租户提供服务?如果是这样,单实例与多租户相同吗?

4)多实例:这是否意味着每个实例只能服务一个租户,或者是否可以有多个实例,每个实例服务多个租户?IE。多实例服务可以是单租户或多租户吗?

5)单租户:这是否仅仅意味着单个实例只能为一个租户提供服务,还是也意味着存在多个实例?IE。单租户服务可以同时是单实例和多实例吗?

6)多租户:这是否仅仅意味着单个实例可以为多个租户提供服务,还是意味着只有一个实例?IE。多租户服务可以同时是单实例和多实例吗?

7)总结一下:可以单实例+单租户、单实例+多租户、多实例+单租户、多实例+多租户吗?

saas single-instance multi-tenant multi-instance-deployment server

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

Redux 传奇:使用 yield call() 和 async/await 有什么区别?

我正在使用 Redux Saga 模板,它使用包含yield call(). 基本上它看起来像这样:

function *a(){
  yield call(<some function>);
}

yield takeLatest(SOME_ACTION, a)
Run Code Online (Sandbox Code Playgroud)

我的问题如下:

1)我是否正确使用的原因

function *a(){
  yield call(<some function>());
}
Run Code Online (Sandbox Code Playgroud)

代替

function a(){
  <some function>()
}
Run Code Online (Sandbox Code Playgroud)

是第一个,生成器函数将等到yield call行返回后再继续,而在第二个中, () 将被异步调用?

2) 如果我对 (1) ^^ 是正确的,那么调用some_functioninsidea似乎与以下内容相同:

async a() {
  await some_function();
}
Run Code Online (Sandbox Code Playgroud)

这样对吗?

3) 如果我对 (2) ^^ 是正确的,那么使用生成器函数而不是 async/await 的唯一原因似乎是可以从yield takeLatest等调用生成器函数。这是正确的吗?还是背后另有隐情?

谢谢!

saga reactjs react-native redux redux-saga

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

我们是否需要使用 React Native 0.60 运行 `pod install`?

我正在使用 React Native 0.60.5 并且正在链接这个模块。它说对于 React Native 0.60+,“CLI 自动链接功能在构建应用程序时链接模块”,所以我们需要运行的只是yarn add @react-native-community/async-storage.

但是,在描述自动链接的主页上,它说我们需要运行:

yarn add @react-native-community/async-storage cd ios && pod install && cd ..

我想知道的:

我们是否必须pod install使用 React Native 0.60+运行所有原生模块?

cocoapods reactjs react-native native-module react-native-native-module

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

为什么将componentDidMount更改为非箭头功能会使热重装再次工作?

对于我的React Native应用程序中的一个屏幕,无法进行热重装。我发现解决方案是改变这一点

componentDidMount = () => {
  <...do stuff with this.props...>
}
Run Code Online (Sandbox Code Playgroud)

对此

componentDidMount() {
  <...do stuff with this.props...>
}
Run Code Online (Sandbox Code Playgroud)

因此,我所做的只是将componentDidMount箭头功能更改为非箭头功能。所以我的问题是:

为什么将其更改为非箭头功能会使热重装再次工作?我知道使其成为非箭头函数意味着如果从其他上下文调用该函数,则其值this将被重新绑定到调用该函数的上下文中,而使用箭头函数将始终被绑定到定义它的组件。但这如何影响热装?热重装是否会导致componentDidMount从其他上下文调用并this重新绑定?如果是这样,那将如何影响热装?

谢谢!

更新

一些用户问这是否是(ES6对象中的方法:使用箭头函数)或(箭头函数与函数声明/表达式:它们是否等效/可互换?)的重复项。

这不是这两个的重复。请注意,我确实概述了箭头功能和非箭头功能之间的区别。我的问题是这些差异如何专门应用于热重装。

javascript reloading reactjs react-native hot-reload

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

无法从 React Native 中的父组件调用子组件方法

我有一个<Parent>包含组件的 React Native 组件,<Child>我希望能够在 Parent 中调用 Child 的方法之一。在阅读了一堆其他帖子后,这就是我所拥有的:

儿童.js

export default class Child extends Component {
  method1() {
    console.log("success");
  }
  render() {
    return(
      <View/>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

家长

export default class Parent extends Component {
  render() {
    return(
      <View>
        <TouchableOpacity
          onPress={() => this.child.method1()}
        />
        <Child
          onRef={ref => (this.child = ref)}
        />
      </View>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误“_this2.child.method1 不是函数。”

我尝试过的其他事情是使用refInput而不是onRef,而ref => {this.child = ref}不是ref => (this.child = ref)

有任何想法吗?

谢谢!

javascript reactjs react-native

5
推荐指数
2
解决办法
3021
查看次数

是否可以直接跳转到 Xcode 输出中的错误?

当我尝试进行 Xcode 构建但失败时,我通常会在 Xcode 窗口左侧的“Buildtime”屏幕中看到一长串警告消息。实际的错误消息(带有红色感叹号)通常位于底部,我必须滚动几秒钟才能看到它。另外,当我滚动到它时,它会在下面加载更多警告,因此我必须多次执行滚动过程。有谁知道是否有办法直接跳转到错误消息,或将所有消息输出到文件或其他文件中?

xcode

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

React Native 是否随 Gradle 一起提供?

我在 Github 帖子中读到“我正在使用react-native v0.59.9,它使用gradle v5.4.1。”。我已经使用 React Native 一段时间了,并且能够在 Android 上进行模拟,但不记得曾经安装过 Gradle。当我创建 React Native 应用程序时,它会自动附带 Gradle 吗?如果是这样,我是否需要担心 Gradle 版本,或者给定的 React Native 版本是否总是附带相应的 Gradle 版本?

android gradle android-studio reactjs react-native

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

React Native:当您离开某个组件时,该组件是否会被卸载?

在我的 React Native 应用程序中,如果我有一个堆栈导航器并且我使用 导航screenA到,是否有可能被卸载?screenBthis.props.navigation.navigate('screenB')screenA

我问的原因是,当screenA挂载时,我会进行一个 API 调用,该调用将加载可通过 Redux 在所有屏幕中使用的资源。screenB当 API 调用仍在进行时,我可能会导航到。所以我想知道我导航得screenB太早是否可能会阻止资源加载并在screenB.

render reactjs react-native redux react-redux

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

Javascript:如何在 IF 语句中从 AbortController 捕获“DOMException:Aborted”?

我正在使用AbortController并捕获它中止时抛出的错误。我的调试器说错误是DOMException: Aborted. 我想在 IF 语句中捕获它,但我不知道如何捕获。我尝试if (e == "DOMException: Aborted")过,if (e == "Aborted")但他们没有捕获它。

我的代码:

  controller = new AbortController();
  const signal = controller.signal;
  fetch(url, { signal })
    .then(function(response) {
      console.log('Download complete', response);
    })
    .catch(function(e) {
      console.log('Download error: ' + e.message);
    });
Run Code Online (Sandbox Code Playgroud)

然后我中止这个控制器controller.abort()

javascript try-catch abort

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

React Native PermissionsAndroid 不包括 READ_MEDIA_IMAGES。如何解决这个问题?

我在我的 React Native 应用程序中使用react-native-camera-roll/camera-roll@5.2.0。对于 Android 13,READ_EXTERNAL_STORAGE 权限已替换为 READ_MEDIA_IMAGES。我使用以下代码来检查是否已授予权限:

const permission = Platform.Version >= 33 ? PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES : PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE;

const hasPermission = await PermissionsAndroid.check(permission);
Run Code Online (Sandbox Code Playgroud)

然而,PermissionsAndroid.PERMISSIONS不包含READ_MEDIA_IMAGES,所以permission也是undefined。传递undefinedPermissionsAndroid.check()会使应用程序挂起。

我想知道的是:

我正在使用react-native@0.65.3。PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES 直到 0.70 才可用,所以除非我更新到 0.70,否则permission将始终是undefined. 我该如何解决这个问题?

permissions android-permissions reactjs react-native react-native-permissions

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