我正在创建一个从 fetch 函数获取一些数据的应用程序。这里没问题。数组的数据正确。我这样做是这样的:
constructor(){
super()
this.state = {
fetching: false,
api: []
}
}
componentWillMount(){
this.setState({ fetching: true })
api.getMonuments().then(res => {
this.setState({
api: res,
fetching: false
})
})
}
Run Code Online (Sandbox Code Playgroud)
然后我想将该数据传递到另一个场景。我这样做是这样的:
<View style={styles.contentContainer}>
<TouchableHighlight
style={[styles.button, {marginBottom:0}]}
onPress={() => navigate('Monumento', this.state.api)}
underlayColor='#000'
>
<View style={styles.buttonContent}>
<Animatable.Text
style={styles.buttonText}
animation="bounceInLeft"
duration={1500}
>
Click here!
</Animatable.Text>
</View>
</TouchableHighlight>
</View>
Run Code Online (Sandbox Code Playgroud)
在另一个场景中,我使用 navigation.state.params 获取该数据,但现在的问题是不再有一个包含 4 个对象的数组,而是一个包含 4 个对象的对象......如果我控制台记录所显示的数据
render(){
const api = this.props.navigation.state.params;
console.log('API:', api)
...
Run Code Online (Sandbox Code Playgroud)
现在我想使用地图函数,但我不能,因为“api”不是函数......我该如何解决这个问题?
当我使用填充样式时出现的问题是 Android - iOS 上的差异
<Content style={{padding: '7%'}}>
Run Code Online (Sandbox Code Playgroud)
我怎样才能把它穿成同样的风格

我确实yarn run eject弹出了,但它给了我这个警告
Warning! We found at least one file where your project imports the Expo SDK
Run Code Online (Sandbox Code Playgroud)
我知道我有一些使用 Expo API 的模块,如下所示 -
await Expo.Font.loadAsync({
Roboto: require('native-base/Fonts/Roboto.ttf'),
Roboto_medium: require('native-base/Fonts/Roboto_medium.ttf'),
});
Run Code Online (Sandbox Code Playgroud)
现在我想将其转换为 React Native 组件,这样我就可以弹出而不会出现任何错误,这样我就
可以像我们在使用时一样在根文件夹中获取index.android.js&了index.ios.jsreact-native init example
我有一个关于升级react-native版本的问题。我们有一些升级选择,但我不知道有什么区别。
1)react-native upgrade
2)react-native-git-upgrade
3)npm install react-native@latest --save然后react-native run-android或react-native run-ios
我在我的项目中使用了第三种方法,因为我需要在 android 文件夹中维护我的文件,如 MainActivity.java、MainApplication.java、AndroidManifest 等。
您能描述一下这些方式之间的差异吗?
我花了超过 si 个小时尝试将 DrawerNavigator 的背景更改为透明,但没有成功。当我在主要组件中更改它时写入它可以工作
const MainTabBarDrawer = DrawerNavigator({
Home:{
screen:MainTabNavigator,
},
},{
drawerWidth: 200,
drawerPosition: 'right',
// contentComponent: props => <Text style={{color:'white'}} >text
</Text>,
drawerBackgroundColor: 'yellow',
//backgroundColor:'transparent',
// style: {
// //backgroundColor: 'transparent',
// flex: 1
// },
// contentOptions: {
// style: {
// backgroundColor: 'transparent',
// flex: 1
// }
},
{
style: {
backgroundColor: 'transparent',
flex:1
}
}
)
class App extends Component{
render()
{
return(<MainTabBarDrawer style={{backgroundColor: 'transparent'}}/>)
//return(<Login/>)
}
}
Run Code Online (Sandbox Code Playgroud)
虽然上述方法可行,但我的布局非常复杂,我不希望抽屉出现在我的所有视图中。那么有人知道我是否可以直接更改 DrawerNavigator 的背景而不将其渲染为组件吗?
react-native react-native-ios react-native-navigation react-navigation
我是 React Native 的新手,我想使用本机模块来获取手机的电池状态。问题是我收到以下错误:@“桥接模块%@不符合 RCTBridgeModule”。我猜它与类相关,但我不熟悉 Objective-C 语法。尽管答案很简单,但我真的很感激在这个领域的任何帮助。谢谢你!
我的 BatteryStatus.h 看起来像这样:
#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>
@interface BatteryStatus : RCTEventEmitter <RCTBridgeModule>
@end
Run Code Online (Sandbox Code Playgroud)
我的 BatteryStatus.m 如下所示:
#import "BatteryStatus.h"
@implementation BatteryStatus
RCT_EXPORT_MODULE(BatteryStatus)
- (instancetype)init
{
if ((self = [super init])) {
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
}
return self;
}
RCT_EXPORT_METHOD(hide) {
}
RCT_EXPORT_METHOD(updateBatteryLevel:(RCTResponseSenderBlock)callback)
{
callback(@[[self getBatteryStatus]]);
}
//manually get battery status by calling following method
-(NSDictionary*)getBatteryStatus
{
float batteryLevel = [UIDevice currentDevice].batteryLevel;
NSObject* currentLevel = nil;
currentLevel = [NSNumber numberWithFloat:(batteryLevel …Run Code Online (Sandbox Code Playgroud) 我是 IOS 开发的新手,我已经在 React Native 中开发并构建了一个适用于 IOS 和 Android 的应用程序,并且该应用程序在 Android 中完全运行。我还在 iPhone 模拟器上安装了该应用程序进行测试,成功构建后,当应用程序打开时,它会崩溃,并且 Xcode 显示错误堆栈。
堆栈跟踪
2018-03-26 17:18:59.537548+0530 VwWoocommerceAppMain[57934:681649] -[__NSDictionaryM length]: unrecognized selector sent to instance 0x60000023abc0
2018-03-26 17:18:59.555 [fatal][tid:com.facebook.react.AsyncLocalStorageQueue] Exception '-[__NSDictionaryM length]: unrecognized selector sent to instance 0x60000023abc0' was thrown while invoking multiSet on target AsyncLocalStorage with params (
(
(
cart,
{
}
)
),
5873
)
callstack: (
0 CoreFoundation 0x0000000103f8212b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x0000000102874f41 objc_exception_throw + 48
2 CoreFoundation 0x0000000104003024 -[NSObject(NSObject) doesNotRecognizeSelector:] + …Run Code Online (Sandbox Code Playgroud)我想知道是否可能。我想在 aws 工作区中运行 React Native 应用程序。目前,当我尝试在 aws 工作区中运行 react-native run-android 时,它说它不支持模拟器,因为它需要启用英特尔硬件。在 aws 工作区中这是不可能的。只是想知道是否有任何替代模拟器可以在 aws 工作区中使用来运行 React Native 应用程序。
我尝试使用 aws amplify,但它用于身份验证目的,而不是用于在 aws windows 实例中运行反应本机应用程序。
amazon-ec2 amazon-web-services react-native react-native-ios
我是 React Native (0.59.3) 的新手,我正在尝试为我的应用程序中的所有组件设置默认字体Text。我已阅读/sf/answers/3354779291/和如何在 React Native for IOS 应用程序中禁用字体缩放?。
在我的App.js我已经放入:
import { Text } from 'react-native';
Text.defaultProps.style = {
fontFamily: 'AmericanTypewriter' //just for testing
}
Run Code Online (Sandbox Code Playgroud)
但我明白了Cannot set property 'style' of undefined。
当我在此之前添加行时Text.defaultProps = Text.defaultProps || {};,我没有收到错误,但什么也没有发生(所有Text组件仍然使用默认字体)。我尝试使用不同的字体(内置 iOS 字体和我链接并验证的自定义字体),使用它们的 PostScript 名称,但没有任何反应。
我究竟做错了什么?
我正在使用 react-native-twitter 登录,并按照官方文档中的所有步骤进行操作,但是
在 AppDelegate.m 文件中使用未声明的标识符“Twitter”
归档 IOS 应用程序时出现此错误,但在模拟器上运行时运行正常,应该是什么问题?
react-native ×10
react-native-ios ×10
reactjs ×2
amazon-ec2 ×1
expo ×1
ios ×1
objective-c ×1