如何在React Native中添加Native Bridge Android的默认值

fli*_*lix 2 android react-native native-module

我有一些服务需要通过用户输入或给定默认值重复启动,所以我需要添加参数来处理它,

我已经尝试过这个:

@ReactMethod
public void start(){
  start(1000);
}

@ReactMethod
public void start(int timer){
  Intent i = new Intent(reactContext, ServiceUploadData.class);
  i.putExtra("Interval", timer);
  reactContext.startService(i);
}
Run Code Online (Sandbox Code Playgroud)

但这些代码显示错误

开始有 0 个参数,预期有 1 个

有人可以帮助我吗?

And*_*rew 5

虽然我还没有在文档中看到它,但我在代码中看到了它

\n\n
\n

我们不支持方法重载,因为无论参数数量如何,js 都会将函数视为对象。

\n
\n\n

https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java

\n\n

要解决此问题,您可以执行以下操作之一。

\n\n
    \n
  1. 更改名称 public void start(),也许是public void startWithDefault()
  2. \n
  3. public void start(int timer)在 JavaScript 端公开并处理初始值
  4. \n
  5. 公开这两个函数(使用不同的名称),但然后将它们包装在 JavaScript 函数中,该函数使用if来检查是否已设置初始值,然后调用适当的函数。
  6. \n
\n\n

第二个和第三个选项允许您保持 api 对用户而言相同,因为他们只会与 JavaScript 交互。

\n