我碰巧有一个从 -1 到 1 的动画,我想将这些值转换为以下 2 个字符串:
如果值为负,则为“上一个”。
如果值为正,则为“下一步”。
this.state.anim.interpolate({
inputRange: [-1, 0, 1],
outputRange: ['Previous','', 'Next'],
})
Run Code Online (Sandbox Code Playgroud)
问:我如何使用this.state.anim包含的值来决定我们是去下一个屏幕还是前一个屏幕。
更多信息:
this.state.anim从 a 接收它的值PanGesture,我也this.state.anim用于许多其他事情,所以在这里不使用它也是一种耻辱。
这是我们的FlatList,打个招呼:
<FlatList
data={this.state.dates}
...
/>
Run Code Online (Sandbox Code Playgroud)
我们用以下日期输入:
this.state = {
dates: [
'21/06/2019',
'22/06/2019',
'23/06/2019',
]
};
Run Code Online (Sandbox Code Playgroud)
然后,当可见日期更改(onViewableItemsChanged)时,如果我们到达第一个项目(21/06/2019),则会添加数据,以便新状态变为:
dates: [
'18/06/2019',
'19/06/2019',
'20/06/2019',
'21/06/2019',
'22/06/2019',
'23/06/2019',
]
Run Code Online (Sandbox Code Playgroud)
我们之后预先考虑的数据,而不是仍然看到21/06/2019(这是在前面加上发生的日期),我们现在看到19/06/2019。
这是因为在引擎盖下,21/06/2019以前是索引0,但在前缀之后,索引0对应于19/06/2019。
我试图做到这一点,以便在添加数据后的一天保持不变。
请不要告诉我使用,scrollToPosition因为这确实是黑客,而不是解决方案。有什么好办法解决这个问题吗?
谢谢
可选信息:我正在尝试使用marty.js构建此项目,而webpack dev服务器允许来自react-router的入口点,以便它不仅仅在\ path中工作.
因此,我正在整天研究这个堆栈溢出答案,我无法理解以下代码背后的逻辑以及为什么这个答案有效.
retozi回答:
我设置了一个代理来实现这个目标:
您有一个常规的快速网络服务器,可以在任何>路由上为index.html提供服务,除非它是资产路由.如果它是资产,请求将被代理到web-dev-server
您的反应热入口点仍将直接指向webpack开发服务器,因此热重新加载仍然有效.
假设您在8081上运行webpack-dev-server,在8080运行代理.
我的代码现在看起来像这样,但为了使其工作,我稍后将需要实现marty-express.为了实现我必须首先了解retonzis的答案.
express.js文件
要求
'use strict';
var express = require('express');
var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
var config = require('../config.json');
var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var proxy = require('proxy-middleware');
var url = require('url');
Run Code Online (Sandbox Code Playgroud)
代理
var app = express(); //our express instance
// -------- my proxy----------------------
app.use('/assets', proxy(url.parse('http://localhost:8081/assets')));//but why do we need …Run Code Online (Sandbox Code Playgroud) 我试图在现有的许多不同屏幕上找到正确的字体大小,我遇到了很大的麻烦.
目前我有一个名为的辅助函数getCorrectFontSizeForScreen.
export function getCorrectFontSizeForScreen(currentFontSize){
const maxFontDifferFactor = 6; //the maximum pixels of font size we can go up or
if(Platform.OS === 'ios'){ //iOS part
let devRatio = PixelRatio.get();
this.fontFactor = (((screenWidth*devRatio)/320)*0.55+((screenHeight*devRatio)/640)*0.45)
if(this.fontFactor<=1){
return currentFontSize-float2int(maxFontDifferFactor*0.3);
}else if((this.fontFactor>=1) && (this.fontFactor<=1.6)){
return currentFontSize-float2int(maxFontDifferFactor*0.1);
}else if((this.fontFactor>=1.6) && (this.fontFactor<=2)){
return currentFontSize;
}else if((this.fontFactor>=2) && (this.fontFactor<=3)){
return currentFontSize+float2int(maxFontDifferFactor*0.85);
}else if (this.fontFactor>=3){
return currentFontSize+float2int(maxFontDifferFactor);
}
}else{ //Android part
let scale = screenWidth/375; //got this from the f8 facebook project
this.fontFactor = (((screenWidth)/320)*0.65+((screenHeight)/640)*0.35)
if(this.fontFactor<=1){ //for …Run Code Online (Sandbox Code Playgroud) 我注意到firebase文档说明如下:
如果提供了通知负载,或者将content_available 选项设置为true以将消息发送到 iOS 设备,则消息通过 APNs 发送,否则通过 FCM 连接服务器发送。
有人可以解释一下这是什么意思吗?
我以为发送到 iOS 设备的所有推送通知,首先发送到Apple,然后由 Apple 转发到相应的设备,但这里暗示他们直接向设备发送消息?
当应用程序在 iOS 上关闭时,这甚至可能吗?
我很困惑,谢谢。
apple-push-notifications ios firebase firebase-cloud-messaging firebase-notifications
我很清楚,对于本机本机模块,我们可以使用它@ReactMethod来导出一个方法并从JSX调用它,但是我们如何在react-native本机UI组件中做同样的事情呢?
在文档中我只看到@ReactProp被提及.如果@ReactMethod不起作用,如何从JSX访问我的本机UI组件的属性呢?(在iOS上,这可以在原生ui组件RCT_EXPORT_METHOD上完成,但在Android上是类似的可能吗?)
谢谢.
react-native react-native-android react-native-native-module react-native-native-ui-component
I think I've read pretty much all the answers to all of the similar SO questions, and NONE of them seem to be working for me. It's driving me nuts, and I've spent too much time on this.
I'm implementing a RecyclerView here and I can't for the life of me update it's children. What happens is that after I update nothing changes on the screen, UNLESS I start scrolling. Once I scroll it updates perfectly.
This is my …
android android-recyclerview react-native recyclerview-layout react-native-android
react-native ×5
android ×2
ios ×2
reactjs ×2
animation ×1
express ×1
firebase ×1
javascript ×1
martyjs ×1
react-native-native-ui-component ×1
react-router ×1