小编Mic*_*all的帖子

从React-Native ListView行中的子组件调用父函数

我已经看到了这个问题的一些例子,但无法让任何工作,或完全理解它们如何组合在一起.我有一个被调用的组件ParentListView和另一个被调用的ChildCell(listView中的一行)我希望onPress从中ChildCell调用一个函数ParentListView.

class ChildCell extends Component {

  pressHandler() {
    this.props.onDonePress;
  }

  render() {
    return (
        <TouchableHighlight onPress={() => this.pressHandler()} >
          <Text>Child Cell Button</Text>
        </TouchableHighlight>
    );
  }

}
Run Code Online (Sandbox Code Playgroud)

并在ParentListView:

class ParentListView extends Component {  

//...

  render() {

    return (
      <ListView
        dataSource={this.state.dataSource}
        style={styles.listView}
        renderRow={this.renderCell}
        renderSectionHeader={this.renderSectionHeader}
        />
    );
  }

  renderCell() {
    return (
      <ChildCell onDonePress={() => this.onDonePressList()} />
    )
  }

  onDonePressList() {
    console.log('Done pressed in list view')
  }

}
Run Code Online (Sandbox Code Playgroud)

我认为这就是所有相关的代码.我可以让媒体注册希望ChildCell,但无法获得该方法 …

listview components row function react-native

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

如何使用点击手势(iOS8/Swift)在pageViewController上显示/隐藏状态栏

通过查看类似问题的所有解决方案,我一直试图statusBar通过轻击手势来显示/隐藏.

我已经设置View controller-based status bar appearance = NO了plist.

我在我的DataViewController(页面视图控制器)和以下代码中尝试了以下代码RootViewController:

let app = UIApplication.sharedApplication()
app.setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.Fade)
Run Code Online (Sandbox Code Playgroud)

它不起作用.

这是嵌入一个UITabBarController,会有所作为吗?

此外,我能够得到以下内容来隐藏statusBar RootViewController:

override func prefersStatusBarHidden() -> Bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)

DataViewController它甚至没有调用这个函数,只能以这种方式永久隐藏它,而不是打开/关闭它.

有任何想法吗?

statusbar ios uipageviewcontroller swift ios8

6
推荐指数
1
解决办法
5597
查看次数

在android上使用react-native的空白白屏(仅限发布)

我的应用程序在调试模式下在模拟器上运行正常.当我尝试在设备上使用已签名的APK或在模拟器上以释放模式运行时使用:

react-native run-android --variant=release
Run Code Online (Sandbox Code Playgroud)

它只是一个空白的白色屏幕,不加载.

我正在使用React-Native-Navigation和React-Native-Firebase,这可能会也可能不会导致问题.

我看到的一个错误与我认为的Firebase有关:

W/GooglePlayServicesUtil:Google Play服务已过期.需要11717000但是发现10298470 11-20 11:24:04.624 16106-16106 /?W/FA:

failed to send app launch当然看起来很不祥.

编辑:我不确定上面的错误实际上是在我的设备上运行发布版本时导致空白屏幕.此消息显示在模拟器中,但我的应用程序在模拟器上工作.在我的设备上,我看到Google Play服务的版本是11.7.46,我认为应该可以正常使用.

还有什么能让我的应用只在发布时成为空白屏幕吗?

编辑2:

我这次发现了另一个错误(我已经降级到了旧版本的react-native-firebase 2.2)

11-25 12:11:07.278 5281-5295/com.spectrum E/FirebaseCrash:无法加载崩溃报告com.google.android.gms.internal.mn:..com.google.android.gms.dynamite.DynamiteModule $ zzc :远程加载失败.没有发现本地回退.来自com.google.fire.firebase.crash.zzc.zzFi(未知来源)的com.google.android.gms.internal.ml.zzFk(未知来源),位于java.util.concurrent.FutureTask.run(FutureTask.java:237) )java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:588)at java.lang.Thread.run(Thread.java: 818)由以下原因引起:com.google.android.gms.dynamite.DynamiteModule $ zzc:远程加载失败.没有发现本地回退....

编辑3:

以下是来自的依赖项app.gradle:

dependencies {
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:25.0.1"
compile "com.facebook.react:react-native:+"  // From node_modules
compile project(':react-native-navigation')

// RNFirebase required dependencies
compile(project(':react-native-firebase')) {
    transitive = false
}
compile "com.google.firebase:firebase-core:11.0.4"

// RNFirebase optional dependencies
compile "com.google.firebase:firebase-crash:11.0.4"
compile …
Run Code Online (Sandbox Code Playgroud)

android firebase google-play-services react-native react-native-navigation

6
推荐指数
1
解决办法
1513
查看次数

在RN更新后,隐藏NavigatorIOS组件中的导航栏(react-native)不起作用

我最近将我的反应原生项目从~0.28升级到最新版本(0.43.2),由于某种原因我的导航栏不再为我隐藏.

这是代码(它位于TabBarIOS组件中):

    <TabBarIOS.Item
      selected={this.state.selectedTab === 'home'}
      title='Home'
      icon={require ('./Icons/IconImages/HomeTabIcon.png')}
      onPress={
        () => this._tabPressed('home')
      }>
      <NavigatorIOS
        style={styles.container}
        ref="nav"
        interactivePopGestureEnabled={false}
        initialRoute={{
          title: 'Home',
          component: HomeNavigationController,
          navigationBarHidden: true, //this does nothing now
          showTabBar: false, //this is to hide the bottom tabBar
          passProps: {
            ...
          },
        }}/>
      </TabBarIOS.Item>
Run Code Online (Sandbox Code Playgroud)

在外面添加它initialRoute也不起作用:

          <NavigatorIOS
        style={styles.container}
        ref="nav"
        interactivePopGestureEnabled={false}
        initialRoute={{
          title: 'Home',
          component: HomeNavigationController,
          showTabBar: false,
          passProps: {...},
        }}
        navigationBarHidden={true} // does not work
        />
Run Code Online (Sandbox Code Playgroud)

navigationbar react-native navigator-ios

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

如何管理潜在的无限推动视图控制器到导航控制器堆栈?iOS版

我有一个由UINavigationController组成的应用程序,可以从3个不同的选项卡中推送ViewControllers.

我预见到的问题是当前的结构允许用户无休止地将VC添加到堆栈中.

我有一个名为pharmaceuticals的标签,另一个叫做病原体.如果你在药物中钻得足够远,你可以得到它有效的病原体清单,用户可以选择一种病原体来查看它的更多信息.这导致应用程序推动新的病原体VC.

现在,用户可以深入查看病原体易受影响的药物清单并选择它,这会在药品标签中产生新的VC.

等等等等...

每次有额外的1.5Mb添加到内存占用.

我怎样才能最好地管理这个?

memory objective-c uiviewcontroller uinavigationcontroller ios

4
推荐指数
1
解决办法
508
查看次数

使用自动布局时,相当于"CGAffineTransformMakeTranslation(0,0)"?动画回到原始位置

我试图动画从位置A到B然后再返回的视图.以前,我会做以下的动画来制作B:

[UIView animateWithDuration:1 animations:^{
    self.myView.transform = CGAffineTransformMakeTranslation(100, 0);
}];
Run Code Online (Sandbox Code Playgroud)

然后这将动画回到A:

[UIView animateWithDuration:1 animations:^{
    self.myView.transform = CGAffineTransformMakeTranslation(0, 0);
}];
Run Code Online (Sandbox Code Playgroud)

所有这些都无需了解原始位置.

现在在自动布局中我使用以下代码动画到位置B:

self.myLeadingConstraint.constant = 100;

[UIView animateWithDuration:1 animations:^{
    [self.view layoutIfNeeded];
}];
Run Code Online (Sandbox Code Playgroud)

有没有办法获得以前的常量值而无需创建另一个变量或查看IB以查看初始值是什么?有没有更好的方法来做所有这些?

提前致谢.

ios autolayout

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

执行“ pod安装”时发生CocoaPods错误:[!]无效的Podfile文件:未初始化的常量Pod :: Podfile :: Flurry。

我正在尝试使用npm React Native Flurry Analytics安装Flurry for React Native

这是我的pod文件:

target 'myApp' do

  pod Flurry-iOS-SDK/FlurrySDK

end
Run Code Online (Sandbox Code Playgroud)

pod install在我的React-Native项目的/ ios目录中运行,我得到:

[!] Invalid `Podfile` file: uninitialized constant Pod::Podfile::Flurry.
Run Code Online (Sandbox Code Playgroud)

提前致谢!

flurry npm cocoapods react-native

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

如何在React Native Component中有条件地包含图像?

我可以将静态图像添加到ListView单元格中(参见下面的代码),但如何动态更改图标图像?

来自React Native Docs

<Image source={require('./img/check.png')} />
Run Code Online (Sandbox Code Playgroud)

是推荐用于引用iOS和Android图像文件的方法.

我有一个名为的组件ExpandingCell可以选择显示一堆不同的图标,但其他一切都保持不变.

ListView我创建一个cell对象,然后将其传递ExpandingCell给渲染

ListView数据源数组如下所示:

var LIST_DATA = [
 ...
  {type: 'ExpandingCell', 
   icon: './CellIcons/MagnifyingGlassIcon.png', //unused
   title: 'Lorem Ipsum', 
   detail: 'Donec id elit non mi porta gravida at eget metus.'},
...
];
Run Code Online (Sandbox Code Playgroud)

然后在renderCell方法中它传递上面的单元格对象:

renderCell(cell) {
    if (cell.type === 'ExpandingCell') {
        return (
          <ExpandingCell cell={cell} />
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,ExpandingCell我有这个render():

render() {
    return (
        ...
        <Image source{
            require('./CellIcons/MagnifyingGlassIcon.png')
        }> …
Run Code Online (Sandbox Code Playgroud)

image reactjs react-native

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