React native 不推荐使用ViewManager receiveCommand?

React native 不推荐使用ViewManager receiveCommand?,react-native,react-native-android,React Native,React Native Android,我最近在react本机源代码中注意到以下方法: public void receiveCommand(@NonNull T root, int commandId, @Nullable ReadableArray args) ViewManager类的已标记为已弃用。因此,我尝试将其替换为未标记为已弃用的重载版本: public void receiveCommand(@NonNull T root, String commandId, @Nullable ReadableArray args

我最近在react本机源代码中注意到以下方法:

public void receiveCommand(@NonNull T root, int commandId, @Nullable ReadableArray args)
ViewManager类的已标记为已弃用。因此,我尝试将其替换为未标记为已弃用的重载版本:

public void receiveCommand(@NonNull T root, String commandId, @Nullable ReadableArray args)
但这个永远不会被调用。我想我可能还需要更改一些其他方法,但我找不到任何信息,无法了解还需要做什么,因为我没有可以遵循的迁移指南

有人知道如何正确使用新的、未弃用的receiveCommand方法吗

可在此处找到ViewManager的源代码:

如果从React本机代码发送字符串作为
dispatchViewManagerCommand
的第二个参数,则将调用新的、未弃用版本的
receiveCommand
。不再需要重写
getCommandsMap()

例如:

CustomViewManager.kt
(在Kotlin中,应易于转换为Java)


我们需要实现getCommandsMap方法吗。我正在尝试使用新的receiveCommand方法,但没有被调用。这对iOS也适用吗?
class CustomViewManager : SimpleViewManager<CustomView>() {
...
    override fun createViewInstance( context: ThemedReactContext): CustomView {
        // code to instantiate your view
    }
...
    override fun getName(): String {
        return "CustomView"
    }
...
    override fun receiveCommand(view: CustomView, commandId: String, args: ReadableArray?) {
    when (commandId) {
        "doSomething" -> doSomething()
    }
}
import { View, requireNativeComponent, UIManager, findNodeHandle } from 'react-native';
...
const CustomView = requireNativeComponent('CustomView');
...
export default class MyComponent extends Component {
...
    onDoSomething = async () => {
        UIManager.dispatchViewManagerCommand(
            findNodeHandle(this.customView),
            'doSomething',
            undefined,
        );
    };
...
    render() {
        return (
            <View>
                <CustomView
                    ref={(component) => {
                        this.customView = component;
                    }}
                />
            </View>
        );
    }
}