我无法实现两个嵌套map:
render() {
return (
<table className="table">
<tbody>
{Object.keys(this.state.templates).map(function(template_name) {
return (
<tr key={template_name}><td><b>Template: {template_name}</b></td></tr>
{this.state.templates[template_name].items.map(function(item) {
return (
<tr key={item.id}><td>{item.id}</td></tr>
)
})}
)
})}
</tbody>
</table>
)
}
Run Code Online (Sandbox Code Playgroud)
这给了一个SyntaxError: unknown: Unexpected token.
你如何map在JSX中嵌套调用?
就像Facebook,Instagram和任何其他移动应用程序一样,我想实现'回到Stacknavigator中的初始屏幕'
如果您不理解这个用例,请发表评论,我将为您绘制其状态流程
主TabNavigator上的图标代码.
navigationOptions: ({ navigation }) => ({
header: null,
tabBarIcon: ({ focused }) => {
const { routeName } = navigation.state;
....
return (
<TochableWithoutFeedback onPress={()=>{navigation.goback(iconName)}>
// undefined is not a function when I press the Button
// deeper screen. (not getting any error on Main)
<Ionicons
name={iconName}
size={30}
style={{ marginBottom: -3 }}
color={focused ? Colors.tabIconSelected : Colors.tabIconDefault}
/>
<TochableWithoutFeedback>
);
},
Run Code Online (Sandbox Code Playgroud) 从 Rails 5 升级到 Rails 6.0.3.1 后,我的 SCSS 无法在 Heroku 上编译:
remote: yarn install v1.16.0
remote: [1/4] Resolving packages...
remote: [2/4] Fetching packages...
remote: info fsevents@1.1.3: The platform "linux" is incompatible with this module.
remote: info "fsevents@1.1.3" is an optional dependency and failed compatibility check. Excluding it from installation.
remote: [3/4] Linking dependencies...
remote: warning "@rails/webpacker > postcss-cssnext@3.1.0" has unmet peer dependency "caniuse-lite@^1.0.30000697".
remote: warning " > webpack-dev-server@2.11.2" has unmet peer dependency "webpack@^2.2.0 || ^3.0.0".
remote: warning "webpack-dev-server > webpack-dev-middleware@1.12.2" …Run Code Online (Sandbox Code Playgroud) 我有一个界面:
export default interface ValidationResult {
valid: boolean
errors?: string[]
}
Run Code Online (Sandbox Code Playgroud)
还有一个返回实现该接口的对象的函数:
static validateTitle(title: string): ValidationResult {
if (title == null || title === '')
return {valid: false, errors: ["Title can't be empty."]}
return {valid: true}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在另一个函数中使用第一个函数时:
static async validateMovie(title: string): Promise<ValidationResult> {
const result = this.validateTitle(title)
if (result.valid === false)
return new Promise((resolve, reject) => { resolve(result) })
// other validations...
}
Run Code Online (Sandbox Code Playgroud)
我收到TypeScript错误:
error TS2322: Type '{}' is not assignable to type 'ValidationResult'.
Property 'valid' is missing in …Run Code Online (Sandbox Code Playgroud) 我有两个StackNavigator。电影:
const MoviesStackNavigator = createStackNavigator({
Movies: Movies,
MovieDetails: MovieDetails,
},{
initialRouteName: 'Movies',
})
Run Code Online (Sandbox Code Playgroud)
和演员:
const ActorsStackNavigator = createStackNavigator({
Actors: Actors,
ActorDetails: ActorDetails,
},{
initialRouteName: 'Actors',
})
Run Code Online (Sandbox Code Playgroud)
我在TabNavigator中使用它们:
const RootTabs = createBottomTabNavigator({
Movies: {
screen: MoviesStackNavigator,
navigationOptions: {
tabBarLabel: 'Movies'
}
},
Actors: {
screen: ActorsStackNavigator,
navigationOptions: {
tabBarLabel: 'Actors'
}
},
})
Run Code Online (Sandbox Code Playgroud)
当用户更改选项卡时,我希望他到达该选项卡的根组件(Movies或Actors),而不是堆叠组件(MoviesDetails或ActorsDetails)。换句话说,当用户退出选项卡时,该选项卡中的StackNavigator应重置为根组件。
我的第一种方法是StackActions.reset在初始化选项卡中的根组件时尝试重置其他选项卡(用户刚刚退出),但是该库至少以这种方式阻止了导航器之间的交互。
那么,有什么想法吗?