如何将数据从 React-Native 中的 function/Custom 钩子传递到 Swift?
How to Pass Data from function/Custom Hooks in React-Native to Swift?
我打算将数据从 React-Native 传递到 Swift。发送数据的方法可以是一个钩子,也可以是一个函数。阅读文档后,我只找到了将组件传递给 Swift 视图的选项,这对我的情况没有帮助。数据可以是任何类型。我在下面给出了一个示例钩子和一个函数。请告诉我最好的方法。
我试过使用 module.exports
和 requireNativeComponent
但没有成功。
提前致谢
useFetchData.ts
import {useEffect, useState} from 'react';
import axios from 'axios';
const useFetchData = () => {
const [data, setData] = useState({});
useEffect(() => {
const fetchData = async () => {
try {
const {data: response} = await axios.get(
'https://hn.algolia.com/api/v1/search?query=redux',
);
setData(response);
} catch (error) {
console.error(error);
}
};
fetchData();
}, []);
return {data};
};
export default useFetchData;
FunctionExample.ts
const sampleFunction = () => {
return "This is Sample Data"
}
我还在 Obj-C 中为 RCT_CUSTOM_VIEW_PROPERTY
设置了桥
#import <Foundation/Foundation.h>
#import "ReactImports.h"
#import <React/RCTView.h>
@implementation ReactImports
RCT_EXPORT_MODULE()
- (UIView *)view
{
return [[UIView alloc] init];
}
RCT_CUSTOM_VIEW_PROPERTY(reactNativePropString, NSString, UIView)
{
view.accessibilityLabel = json ? [RCTConvert NSString:json] : defaultView.accessibilityLabel;
}
@end
您可以创建原生模块并公开函数以响应原生。在 RN 端,您调用传递所需值的函数。
https://reactnative.dev/docs/native-modules-intro
如果您遇到问题,请在 linkedin 上给我发消息,我会尽力帮助您。
我打算将数据从 React-Native 传递到 Swift。发送数据的方法可以是一个钩子,也可以是一个函数。阅读文档后,我只找到了将组件传递给 Swift 视图的选项,这对我的情况没有帮助。数据可以是任何类型。我在下面给出了一个示例钩子和一个函数。请告诉我最好的方法。
我试过使用 module.exports
和 requireNativeComponent
但没有成功。
提前致谢
useFetchData.ts
import {useEffect, useState} from 'react';
import axios from 'axios';
const useFetchData = () => {
const [data, setData] = useState({});
useEffect(() => {
const fetchData = async () => {
try {
const {data: response} = await axios.get(
'https://hn.algolia.com/api/v1/search?query=redux',
);
setData(response);
} catch (error) {
console.error(error);
}
};
fetchData();
}, []);
return {data};
};
export default useFetchData;
FunctionExample.ts
const sampleFunction = () => {
return "This is Sample Data"
}
我还在 Obj-C 中为 RCT_CUSTOM_VIEW_PROPERTY
#import <Foundation/Foundation.h>
#import "ReactImports.h"
#import <React/RCTView.h>
@implementation ReactImports
RCT_EXPORT_MODULE()
- (UIView *)view
{
return [[UIView alloc] init];
}
RCT_CUSTOM_VIEW_PROPERTY(reactNativePropString, NSString, UIView)
{
view.accessibilityLabel = json ? [RCTConvert NSString:json] : defaultView.accessibilityLabel;
}
@end
您可以创建原生模块并公开函数以响应原生。在 RN 端,您调用传递所需值的函数。
https://reactnative.dev/docs/native-modules-intro
如果您遇到问题,请在 linkedin 上给我发消息,我会尽力帮助您。