我正在关注React-Navigation教程,并停留在标题为Header与屏幕组件交互的部分。 本教程中的代码可以在随意提供的模拟器中正常工作,但是我发现在本地运行时遇到以下错误:
Warning: Failed prop type: The prop 'onPress' is marked as required in 'Button', but its value is 'undefined'.
我设法在navigationOptions改变onPress事件分配得到的代码使用世博CLI我的本地机器上工作的(如下这里我的零食):
<Button
onPress={()=>{navigation.getParam('increaseCount')()}}
//onPress={navigation.getParam('increaseCount')} - as in tutorial
title="+1"
color={Platform.OS === 'ios' ? '#fff' : null}
/>
Run Code Online (Sandbox Code Playgroud)
我希望有人对为什么会这样有所了解。我检查了一下,然后在本地使用了相同版本的Expo(v.32.0)。
App.js清单:
import React from 'react';
import { Button, Image, Platform, View, Text } from 'react-native';
import { createStackNavigator, createAppContainer } from 'react-navigation';
class LogoTitle extends React.Component {
render() {
return (
<Image
source={require('./spiro.png')} …Run Code Online (Sandbox Code Playgroud) 我试图了解如何合并声明接口,但我希望向对象文字类型添加属性,而不是向接口本身添加字段。
我在库中定义了一个类型,如下所示:
interface DefaultSession {
user?: {
name?: string | null;
email?: string | null;
image?: string | null;
};
expires: ISODateString;
}
Run Code Online (Sandbox Code Playgroud)
我知道,如果我想在不更改名称的情况下向该界面添加一个字段,我可以简单地重新打开并声明:
interface DefaultSession {
role?: string
}
Run Code Online (Sandbox Code Playgroud)
我一直在研究 Typescript 手册,但我找不到一种方法将声明角色合并为用户下的属性以产生如下类型:
interface DefaultSession {
user?: {
name?: string | null;
email?: string | null;
image?: string | null;
role?: string | null;
};
expires: ISODateString;
}
Run Code Online (Sandbox Code Playgroud)