如何在 React Native 中添加 Native Bridge 默认值 Android
How to add default value of Native Bridge Android in React Native
我有一些服务需要通过用户输入或给定的默认值重复启动,所以我需要添加参数来处理它,
我试过这个:
@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);
}
但是这些代码显示错误
start got 0 arguments, expected 1
谁能帮帮我?
虽然我没有在文档中看到它,但我在代码中看到了这个
We do not support method overloading since js sees a function as an object regardless of number of params.
要解决此问题,您可以执行以下操作之一。
- 将
public void start()
的名称更改为 public void startWithDefault()
- 仅公开
public void start(int timer)
并在JavaScript端处理初始值
- 公开两个函数(使用不同的名称),然后将它们包装在一个 JavaScript 函数中,该函数使用
if
来检查已设置的初始值,然后调用适当的函数。
第二个和第三个选项允许您让您的 api 对用户保持不变,因为他们只会与 JavaScript 交互。
我有一些服务需要通过用户输入或给定的默认值重复启动,所以我需要添加参数来处理它,
我试过这个:
@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);
}
但是这些代码显示错误
start got 0 arguments, expected 1
谁能帮帮我?
虽然我没有在文档中看到它,但我在代码中看到了这个
We do not support method overloading since js sees a function as an object regardless of number of params.
要解决此问题,您可以执行以下操作之一。
- 将
public void start()
的名称更改为public void startWithDefault()
- 仅公开
public void start(int timer)
并在JavaScript端处理初始值 - 公开两个函数(使用不同的名称),然后将它们包装在一个 JavaScript 函数中,该函数使用
if
来检查已设置的初始值,然后调用适当的函数。
第二个和第三个选项允许您让您的 api 对用户保持不变,因为他们只会与 JavaScript 交互。