Tag: reactjs

如何在React Native应用程序中在iOS的后台运行socket.io?

我在iOS React Native(v0.20) app使用socket.io 。 该应用程序跟踪我的位置,当我的位置改变它发出一条消息到服务器。 如果套接字连接丢失,服务器发送一封电子邮件通知我。 我有位置跟踪与react-native-location在后台工作,但我不能让socket.io工作。 当我改变应用程序或closures屏幕,应用程序不断跟踪我的位置,但我失去了套接字连接。 有没有办法在像位置跟踪的背景下运行socket.io ? 有没有一些本地代码,将允许我在后台保持client/server connection ? 我知道有一个WebSocket的替代品,但我不能看到一种方式让它在后台运行。 更新:我检查了我的Info.plist ,它已经为react-native-location设置了必要的背景值。 我不知道它是否重要,但套接字工作和位置跟踪是在同一个组件中完成的。 LocationComponent.js window.navigator.userAgent = 'react-native'; const io = require('socket.io-client/socket.io'); const socket = io(url, {jsonp: false}); import React, { Text, View, DeviceEventEmitter } from 'react-native'; import { RNLocation } from 'NativeModules'; export default GeolocationExample = React.createClass({ componentDidMount: function() { […]

如何运行React-Native示例?

我找不到任何有关如何安装和运行“ https://github.com/facebook/react-native/tree/master/Examples ”中提供的其他示例的说明,例如“ https:// github”。 com / facebook / react-native / tree / master / Examples / Movies '。 本教程只是告诉你做的 react-native init AwesomeProject 抓住“ https://github.com/facebook/react-native/tree/master/Examples/SampleApp ”。 如果我克隆整个“react-native”存储库,然后运行 npm install npm start 从根文件夹(即“/ react-native”),然后在Xcode中打开“/react-native/Examples/Movies/Movies.xcodeproj”,并运行项目,似乎生成的罚款。 模拟器出现,为应用程序显示一个“电影”介绍屏幕,但随后死亡的红色屏幕出现: :0 和terminal,其中“npm start”在根文件夹处运行,输出: Error: EISDIR, read at Error (native) [02:35:02] <START> request:/Examples/Movies/MoviesApp.includeRequire.runModule.bundle

在博览会禁用debugging反应本机应用程序

所以我今天在世博会上开放了我的反应原生应用程序(使用iOS模拟器),我正在通过一个看起来像debugging覆盖的东西来创build。 屏幕截图: 我不需要这个,它阻止了一些用于testing的UI。 如何closures它?

将边框仅添加到React Native(iOS)中的<Text />组件的一侧

我正在面对iOS中的 React-Native <Text/>组件的奇怪问题。 我想将borderBottomWidth样式应用到<Text/>组件,但是它不起作用。 但是, borderWidth选项起作用 。 Worked <Text style={{borderWidth:1}}> React Native </Text> NOT Worked <Text style={{borderBottomWidth:1}}> React Native </Text> 有没有什么办法只将底层边框应用到<Text/>组件中? 谢谢! 注意: 为了达到这个目的,我知道下面提到的方法,但在我的情况下,我只需要将样式应用于<Text/>组件。 我们可以尝试将<View/>包装到<Text/>并将borderBottomWidth样式应用于<View/> 。 ( borderBottomWidth与<View/> ) 将这样的<View/>添加到可以看起来像一条线的<Text/>组件中。

删除原生反应中的多个组件

我知道如何通过更改状态来添加和删除单个组件。 但是这种方式不会工作,如果你有多个组件要删除。 例如让我说我有3个意见。 当我点击它们时,我怎样才能删除它们。 示例代码: class Example extends Component { render(){ return ( <View> <View> <TouchAbleOpacity onPress={() => this.removeView()}> <Text>Remove View 1</Text> </TouchAbleOpacity> </View> <View> <TouchAbleOpacity onPress={() => this.removeView()}> <Text>Remove View 2</Text> </TouchAbleOpacity> </View> <View> <TouchAbleOpacity onPress={() => this.removeView()}> <Text>Remove View 3</Text> </TouchAbleOpacity> </View> </View> ) } removeView(){ } } 另一个例子是当我有一个ListView的button里面。 这些是邀请用户的button。 当我点击button时,我想隐藏ListView中特定行的button。 有什么build议么?

React-Native:无法访问状态值或从renderRow声明的任何方法

我有一个列表视图,每当用户点击一个项目,我想用onPress(触摸高亮)做些事情。 我试着定义函数然后在onPress调用它们,但他们没有工作。 首先我定义了一个这样的函数: constructor(props) { super(props); this.state = { dataSource: new ListView.DataSource({ rowHasChanged: (row1, row2) => row1 !== row2, }), loaded: false, }; this._dosome = this._dosome.bind(this); } _dosome(dd){ console.log(dd); } 然后 : render(){ if (!this.state.loaded) { return this.renderLoadingView(); } return ( <View style={{ flex: 1 }}> <ListView dataSource={this.state.dataSource} renderRow={this.renderRow} style={styles.listView} /> </View> ); } renderRow(data) […]

反应本机响应字体大小

我想问如何反应本机处理或做响应字体。 例如在iphone 4s我有fontSize:14,而在iphone 6我有fontSize:18。

New React Native项目与旧版本的反应原生

我正在尝试创build一个新的反应本地项目,该项目应该使用旧版本的react-native。 我希望得到的结果是: react-native init MyProject但是它使用的react-native版本是0.13.2 。 但是,用react-native-cli来初始化react-native的旧版本似乎没有任何选项。 执行react-native init MyProject ,然后降级package.json react-native也不起作用,因为init命令安装了一堆用于构build应用程序的xcode模板,并且没有降级这些模板的dowgrade命令。 (有一个upgrade命令。) 我尝试将我的版本的react-native-cli降级到0.1.4 ,这是当前反应本地0.13是当前的,但是这不起作用。 从查看cli源代码看来,它总是使用react-native的最新版本进行初始化。 我意识到这是非常奇怪的想要开始一个旧版本的新项目,但我有一个奇怪的要求,迫使这个。

React Native:在ListView中引用

看起来很难被直接访问。 现在我有一个单元格的列表视图。 在renderRow函数中,我有这样的东西: renderRowView: function(rowData){ return <View > <TextInput ref="text" /> </View> }, 在这种情况下,如果我想使用ref访问这个TextInput,它将是undefined 。 我在Github上看到一个线程( https://github.com/facebook/react-native/issues/897 )提到了解决这个问题的方法,但我仍然不明白如何使用它: render: function() { return ( <ListView dataSource={this.state.dataSource} renderRow={(rowData, sec, i) => <Text ref={(row) => this.rows[sec][i] = row}>{rowData}</Text> } /> ); }, 请帮助我理解这个ref函数是如何工作的,以及如何使用它(即以编程方式专注于行中的TextInput )。 谢谢!

打印:条目“:CFBundleIdentifier”不存在

当我运行react-native run-ios的构build成功,但我得到下面的错误。 我已经检查了所有的地方,但似乎没有工作。 在命令前面使用sudo也无济于事。 我使用Xcode 7.3,react-native-cli:0.2.0,react-native:0.24.1,节点v5.11.0。 === BUILD TARGET mobileTests OF PROJECT mobile WITH CONFIGURATION Release === Check dependencies ** BUILD SUCCEEDED ** Installing build/Build/Products/Debug-iphonesimulator/mobile.app An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2): Failed to install the requested application An application bundle was not found at the provided path. Provide a valid path to […]