Могу ли я использовать собственный идентификатор prop, чтобы найти вид в собственном коде

Можно ли добавить nativeID prop в вид, подобный следующему: <View nativeID="viewId">...</View> И затем используйте этот идентификатор, чтобы найти представление в моем родном коде Android и iOS, чтобы я мог применить некоторые собственный метод на нем. Если это будет, то пример будет оценен.

Ответ 1

Вы можете использовать это после добавления nativeId в представление:

ReactFindViewUtil.addViewListener(onViewFoundListener);

private ReactFindViewUtil.OnViewFoundListener createOnViewFoundListener() {
    return new ReactFindViewUtil.OnViewFoundListener() {
        @Override
        public String getNativeId() {
            return "NativeID";
        }

        @Override
        public void onViewFound(final View view) {
            // some code
        }
    };
}

Ответ 2

Да, это возможно. Предположим, у вас есть представление в JS,

<CustomView> <View nativeID={'childView'}> <CustomView>

На вашем родном модуле Android вызовите ReactFindViewUtil.findView() с контейнером представления и собственным идентификатором

ReactFindViewUtil.findView(CustomView, "childView")

ReactFindViewUtil.findView() находится в com.facebook.react.uimanager.util

Я полагаю, что аналогичная утилита есть и на iOS. Я не исследовал это.