我已经看到了这个问题的一些例子,但无法让任何工作,或完全理解它们如何组合在一起.我有一个被调用的组件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,但无法获得该方法 …
通过查看类似问题的所有解决方案,我一直试图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它甚至没有调用这个函数,只能以这种方式永久隐藏它,而不是打开/关闭它.
有任何想法吗?
我的应用程序在调试模式下在模拟器上运行正常.当我尝试在设备上使用已签名的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
我最近将我的反应原生项目从~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) 我有一个由UINavigationController组成的应用程序,可以从3个不同的选项卡中推送ViewControllers.
我预见到的问题是当前的结构允许用户无休止地将VC添加到堆栈中.
我有一个名为pharmaceuticals的标签,另一个叫做病原体.如果你在药物中钻得足够远,你可以得到它有效的病原体清单,用户可以选择一种病原体来查看它的更多信息.这导致应用程序推动新的病原体VC.
现在,用户可以深入查看病原体易受影响的药物清单并选择它,这会在药品标签中产生新的VC.
等等等等...
每次有额外的1.5Mb添加到内存占用.
我怎样才能最好地管理这个?
memory objective-c uiviewcontroller uinavigationcontroller ios
我试图动画从位置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以查看初始值是什么?有没有更好的方法来做所有这些?
提前致谢.
我正在尝试使用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)
提前致谢!
我可以将静态图像添加到ListView单元格中(参见下面的代码),但如何动态更改图标图像?
<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) react-native ×5
ios ×3
android ×1
autolayout ×1
cocoapods ×1
components ×1
firebase ×1
flurry ×1
function ×1
image ×1
ios8 ×1
listview ×1
memory ×1
npm ×1
objective-c ×1
reactjs ×1
row ×1
statusbar ×1
swift ×1