小编B R*_*son的帖子

修复错误:路由"Home"的组件必须是React组件

我正在尝试使用react-navigation,但是当我将每个屏幕的组件移动到多个文件中时,我无法使用它.我总是得到这个错误:"路由'Home'的组件必须是React组件".如果我将所有代码移动到一个文件中,则不会发生此错误,因此我不确定区别是什么.

这是我的App.js:

import React from 'react';
import { StackNavigator } from 'react-navigation';
import { AppRegistry, StyleSheet, Text, View, TouchableHighlight } from 'react-native';

import { HomeScreen } from './screens/HomeScreen';
import { JoinScreen  from './screens/JoinScreen';
import { HostScreen } from './screens/HostScreen';


const Root = StackNavigator(
  {
    Home: {
      screen: HomeScreen,
    },
    Details: {
      screen: JoinScreen,
    }
  }, 
  {
    initialRouteName: 'Home',
    headerMode: 'none',
  }
);

export default class App extends React.Component {
  render() {
    return (
      <Root />
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的.screens/HomeScreen.js

import …
Run Code Online (Sandbox Code Playgroud)

javascript react-native react-navigation

7
推荐指数
2
解决办法
1万
查看次数

重写 inputAccessoryViewController 以便它在 iOS 9 和 iOS 10 上工作的正确方法是什么

我正在尝试实现一个浮动在键盘上的 textView (如 iMessage 应用程序),我想使用它,inputAccessoryViewController以便我可以拥有视图控制器,而不仅仅是通过覆盖inputAccessoryView. 我编写了下面的代码,但在 iOS 9 中存在问题,当您点击时,textView 会消失,而键盘上的 textView 会弹出。它在 iOS 10 中运行良好。

class ViewController: UIViewController {

    var textEntryController = TextEntryController.fromNIB()

    override var inputAccessoryViewController: UIInputViewController? {
            return self.textEntryController
    }

    override var canBecomeFirstResponder: Bool {
        return true 
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图找出出了什么问题,所以我重写了这两个方法inputAccessoryViewController,并inputAccessoryView在每个方法中设置了断点。

    override var inputAccessoryViewController: UIInputViewController? {
        return self.textEntryController //break point
    }

    override var inputAccessoryView: UIView? {
        return self.textEntryController.view //break point
    }
Run Code Online (Sandbox Code Playgroud)

这解决了 iOS 9 上 textview 消失的问题,但我认为这是不对的。这可能会破坏视图控制器层次结构。

观察:在 iOS 9 和 iOS …

ios inputaccessoryview swift ios9 ios10

5
推荐指数
1
解决办法
707
查看次数

如何使用可空列编写光滑的表定义?

这个表定义一直有效,直到我意识到具有可为空的列意味着我需要使用 Option[String] 而不仅仅是 String。这是我所做的唯一更改,这就是我的代码现在的样子。

class RespondentTableDef(tag: Tag) extends Table[Respondent](tag, "respondent") {

  def id = column[Long]("id", O.PrimaryKey)
  def uuid = column[String]("uuid")
  def version = column[Long]("version")
  def task = column[Long]("task")
  def firstName = column[Option[String]]("first_name")
  def lastName = column[Option[String]]("last_name")
  def ageGroup = column[Option[String]]("age_group")
  def incomeLevel = column[Option[String]]("income_level")
  def employmentStatus = column[Option[String]]("employment_status")
  def maritalStatus = column[Option[String]]("marital_status")
  def housingStatus = column[Option[String]]("housing_status")
  def educationStatus = column[Option[String]]("education_status")
  def gender = column[Option[String]]("gender")

  override def * =
    (id, uuid, version, task, firstName, lastName, ageGroup, incomeLevel, employmentStatus, maritalStatus, housingStatus, educationStatus, …
Run Code Online (Sandbox Code Playgroud)

scala codegen playframework slick

3
推荐指数
3
解决办法
4504
查看次数

是否可以将Int.init传递给Swift中的函数?

我想做这样的事情:

var x = ["10","20",30"]
var y = x.map(Int.init)
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误

对成员'init()'的模糊引用

我知道我可以写

var y = x.map { Int($0) }
Run Code Online (Sandbox Code Playgroud)

但我想知道是否还有另一种方式.

swift

2
推荐指数
1
解决办法
467
查看次数