小编iRo*_*tia的帖子

在React中使用requestAnimationFrame

我是新手,我会尝试优化性能.

我的触摸事件非常缓慢,我正在通过RN文档了解性能,他们已经提到要使用requestAnimationFrame此示例

handleOnPress() {
  // Always use TimerMixin with requestAnimationFrame, setTimeout and
  // setInterval
  this.requestAnimationFrame(() => {
    this.doExpensiveAction();
  });
}
Run Code Online (Sandbox Code Playgroud)

现在,这个描述听起来很模糊,很难让我理解它的用法

就像,我在我的RN应用程序中有这个可触摸的事件

<TouchableWithoutFeedback   onPress={() => this.touched(this.props.coinShortName)}>
Run Code Online (Sandbox Code Playgroud)

哪个叫这个方法

 touched = (id) => {

        this.setState({selectedPostId: id})
        if (this.props.coinShortName == this.state.selectedPostId ) { 
           this.setState({stateToDisplay: !this.state.stateToDisplay})
        }
    }
Run Code Online (Sandbox Code Playgroud)

[问题:]有人可以告诉我如何在应用程序中使用它/应该使用它吗?

reactjs react-native

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

React中的无限渲染

我有问题弄清楚为什么我的应用程序正在做无休止的渲染.

在Inside,我的有状态组件,我在componentDidMount方法中调用redux动作(调用componentWillMount也做无穷无尽的渲染)

class cryptoTicker extends PureComponent {
  componentDidMount() {
    this.props.fetchCoin()
    // This fetches some 1600 crypto coins data,Redux action link for the same in end
  }

  render() {
    return (
      <ScrollView>
        <Header />
        <View>
          <FlatList
            data={this.state.searchCoin ? this.displaySearchCrypto : this.props.cryptoLoaded}
            style={{ flex: 1 }}
            extraData={[this.displaySearchCrypto, this.props.cryptoLoaded]}
            keyExtractor={item => item.short}
            initialNumToRender={50}
            windowSize={21}
            removeClippedSubviews={true}
            renderItem={({ item, index }) => (
              <CoinCard
                key={item["short"]}
              />
            )} 
          />
        </View>
      </ScrollView>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

在CoinCard中我除此之外什么都不做(在Flat列表中注意CoinCard)

class CoinCard extends Component {
  render () { 
    console.log("Inside rende here") …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native

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

Javascript 中的 import * 有什么作用?

在 Github 上浏览这个 repo并试图理解代码的工作

在这里,作者(或程序员)在多个地方提到了 import * 所以我试图理解和理解 import * 是如何工作的?

首先在他的 repo 的 Game.js 文件中,他提到/这样写

import * as actions from '../actions';
Run Code Online (Sandbox Code Playgroud)

在 VS Code 中,当我单击'../actionsusing 命令时,它会将我重定向到此文件 -> index.js

然后在 Index.js 他们有这样的东西

import * as ActionTypes from './action-types';
Run Code Online (Sandbox Code Playgroud)

当我点击./action-types它时会将我重定向到这里action-types.js

我浏览了 firefox 文档,但我无法清楚地理解第一个示例,例如,动作文件夹包含多个文件,以及如何从 '../actions' 导入 * 作为动作;平均 index.js 文件

虽然我知道他已经使用actions.functionName()或调用/引用了这些函数ActionType.TypeName

我的首要问题仍然存在

怎么import * as actions from '../actions'; mean index.js归档?

javascript reactjs

6
推荐指数
2
解决办法
6705
查看次数

在React Native中设计星形图案

我试图在反应本地而不是星星的情况下绘制星形图案,假设是方形框.

星形图案看起来像这样

****
****
****
****
****
Run Code Online (Sandbox Code Playgroud)

在Vanila JS,它看起来像

let rows=5;
 for(let i=1; i <= 5; i++) {
  for(let j=1; j<=5; j++){   
   document.write('*');
  }
  document.write('<br />');
}
Run Code Online (Sandbox Code Playgroud)

但那是vanila JS,我想在React-native功能组件中做同样的事情,然后在JSX中显示它

考虑这个我的功能组件反应原生

let numberOfBoxesRequired = 4; 
let array = []

const gridBoxes  = (props) => {

    for (let i=0; i<numberOfBoxesRequired; i++) {
        for (let j=0; j<numberOfBoxesRequired; j++) {

        }
    }
    return (
        <View style={mainGridBox}>  

        </View>
    )
}
Run Code Online (Sandbox Code Playgroud)

问题:我该怎么办?

javascript reactjs react-native

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

什么是完全的承诺

当我偶然发现台词时,我正在查看猫鼬文档

猫鼬查询不是承诺。为了方便起见,它们具有.then()函数用于co和async / await。如果您需要完整的承诺,请使用.exec()函数。

在这个例子中

var query = Band.findOne({name: "Guns N' Roses"});
assert.ok(!(query instanceof Promise));

// A query is not a fully-fledged promise, but it does have a `.then()`.
query.then(function (doc) {
  // use doc
});

// `.exec()` gives you a fully-fledged promise
var promise = query.exec();
assert.ok(promise instanceof Promise);

promise.then(function (doc) {
  // use doc
});
Run Code Online (Sandbox Code Playgroud)

现在,当他们说完全承诺时,我并没有理解他们的意思,就像对我来说.then()应该是升职,然后它还允许异步和等待。

那么有人可以向我解释完全承诺的含义是什么?

参考链接:https : //mongoosejs.com/docs/promises.html#queries-are-not-promises

javascript mongoose node.js

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

在 firebase 函数中设置 dotenv

我正在尝试将我制作的微型 node-express 应用程序移动到 firebase 函数中。

该文件有dotenv变量。早些时候我认为如果我只是部署并依赖 dotenv,它会起作用,但事实并非如此..

所以,我去了firebase的环境配置文章,了解如何设置.env

哪些国家通过做这样的事情来设置事物

firebase functions:config:set someservice.key="THE API KEY" someservice.id="THE CLIENT ID"
Run Code Online (Sandbox Code Playgroud)

但是我有这么多的环境配置,并且做了一些看起来很麻烦的任务。

所以让我们说这是环境文件

# App port Address
PORT = 8080

# Google Secret 
GOOGLE_CALLBACK_URL =   http://localhost:8080/auth/google/callback
GOOGLE_CLIENT_ID = 4048108-bssbfjohpu69vl6jhpgs1ne0.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET = lTQHpjzY57oQpO

# Client Address 
CLIENT_ADDRESS = http://localhost:3000/


# Meetup Secret 
MEETUP_CALLBACK_URL = http://localhost:8080/auth/meetup/callback
MEETUP_CLIENT_ID = ef6i9f7m6k0jp33m9olgt
MEETUP_CLIENT_SECRET = sk3t5lnss2sdl1kgnt

#EventBrite Secret 
EVENTBRITE_CALLBACK_URL = http://localhost:8080/auth/eventbrite/callback
EVENTBRITE_CLIENT_ID = UU2FXKGYHJRNHLN
EVENTBRITE_CLIENT_SECRET = NA55QG52FAOF6GDMLKSJBKYOPIGQU4R46HHEU4 
Run Code Online (Sandbox Code Playgroud)

我如何最好地设置,以便当我执行firebase firebase serve --only 功能时,托管它不会引发任何错误,例如

OAuth2Strategy …

node.js firebase google-cloud-functions

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

类型“Blob”上不存在属性“名称”

我有一个 blob(命名它file),我试图通过执行类似的操作来存储它的名称值

properties.name = file.name;
Run Code Online (Sandbox Code Playgroud)

但它一直在抱怨

Property 'name' does not exist on type 'Blob'.
Run Code Online (Sandbox Code Playgroud)

他们建议的快速修复将名称添加到blobTypeScript node_modules 文件夹中,但我不想这样做。

我应该采取哪些建议/选项来修复此错误?抱歉,我是 TS 新手,不知道要搜索什么。

这是我的图像斑点console.log。(根据评论)我正在使用的库可能添加了 blob

lastModified: 1596803874299
lastModifiedDate: Fri Aug 07 2020 18:07:54 GMT+0530 (India Standard Time) {}
name: "photo of Elizabeth Tower, London-gcffb6skhv.jpg"
size: 408146
type: "image/jpeg"
webkitRelativePath: ""
Run Code Online (Sandbox Code Playgroud)

typescript

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

导航到不同屏幕时如何断开套接字

我正在使用socket.io-client来获取加密货币的最新数据

constructor() {
    super();
      this.socket = openSocket('https://coincap.io');
    }
Run Code Online (Sandbox Code Playgroud)

然后调用它componentDidMount

 componentDidMount() {
    this.socket.on('trades', (tradeMsg) => {
          for (let i=0; i< this.updateCoinData.length; i++) {
             console.log("it is being called still")
              if (this.updateCoinData[i]["short"] == tradeMsg.coin ) {
                  this.updateCoinData[i]["price"] = tradeMsg["message"]['msg']['price']
                  //Update the crypto Value state in Redux
                  this.props.updateCrypto(this.updateCoinData);
              }
          }
      })
Run Code Online (Sandbox Code Playgroud)

由于套接字已打开,因此它将继续发出消息。现在我想当我从一个屏幕导航到另一个屏幕时,套接字连接将断开,因此我正在做这样的事情

componentWillUnmount() {
 this.socket.disconnect();
}
Run Code Online (Sandbox Code Playgroud)

但即使我已经导航到不同的页面,我的套接字仍在继续发出信号,这意味着它仍然处于连接状态。

我不确定这是否是因为react-navigation我在这里使用StackNavigator

这是我的react-navigation组件

export const MyScreen = createStackNavigator({
  Home: { 
    screen: CoinCap
  },
  CoinCapCharts: {
     screen: CoinCapCharts
    },
  CurrencySelection: {
    screen: …
Run Code Online (Sandbox Code Playgroud)

sockets reactjs react-native

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

如何将图像从Firebase存储传递到Facebook Marketing API?

有人可以帮助我理解如何从Firebase的Node / Express / Cloud Functions下载图像。

因此,现在写,我只能获取一个包含有关Firebase存储中我的图像的信息的obj(通过getMetadata();

let imageInformation = await getImage(domain, thumbID)
Run Code Online (Sandbox Code Playgroud)

哪里控制台日志imageInformation

[ { kind: 'storage#object',
    id: 'functions-firebase-43a59.appspot.com/outlook.com/assets/d547b001-f5bf-b601-c8b1-4bdeb850995e/1551322039811693',
    selfLink: 'https://www.googleapis.com/storage/v1/b/functions-firebase-43a59.appspot.com/o/outlook.com%2Fassets%2Fd547b001-f5bf-b601-c8b1-4bdeb850995e',
    name: 'outlook.com/assets/d547b001-f5bf-b601-c8b1-4bdeb850995e',
    bucket: 'functions-firebase-43a59.appspot.com',
    generation: '1551322039811693',
    metageneration: '1',
    contentType: 'image/png',
    timeCreated: '2019-02-28T02:47:19.811Z',
    updated: '2019-02-28T02:47:19.811Z',
    storageClass: 'STANDARD',
    timeStorageClassUpdated: '2019-02-28T02:47:19.811Z',
    size: '162416',
    md5Hash: '0nES96sSLfY+8nvoLAdjXQ==',
    mediaLink: 'https://www.googleapis.com/download/storage/v1/b/functions-firebase-43a59.appspot.com/o/outlook.com%2Fassets%2Fd547b001-f5bf-b601-c8b1-4bdeb850995e?generation=1551322039811693&alt=media',
    contentDisposition: 'inline; filename*=utf-8\'\'d547b001-f5bf-b601-c8b1-4bdeb850995e',
    metadata: 
     { firebaseStorageDownloadTokens: '78cc9227-a8e7-4797-9929-37983390ad86' },
    crc32c: 'c5GAZw==',
    etag: 'CO389fi03eACEAE=' },
  { kind: 'storage#object',
    id: 'functions-firebase-43a59.appspot.com/outlook.com/assets/d547b001-f5bf-b601-c8b1-4bdeb850995e/1551322039811693',
    selfLink: 'https://www.googleapis.com/storage/v1/b/functions-firebase-43a59.appspot.com/o/outlook.com%2Fassets%2Fd547b001-f5bf-b601-c8b1-4bdeb850995e',
    name: 'outlook.com/assets/d547b001-f5bf-b601-c8b1-4bdeb850995e',
    bucket: 'functions-firebase-43a59.appspot.com',
    generation: '1551322039811693',
    metageneration: '1',
    contentType: 'image/png', …
Run Code Online (Sandbox Code Playgroud)

node.js facebook-graph-api express firebase firebase-storage

5
推荐指数
0
解决办法
169
查看次数

ER_ACCESS_DENIED_ERROR CloudSQL

我收到一个如下所示的错误(在我的函数日志中)

用户访问被拒绝\'varun_admin\'@\'cloudsqlproxy~84.117.112.32\' (using password: YES)',

    sqlMessage:
`\'varun_admin\'@\'cloudsqlproxy~84.117.112.32\' (using password: YES)',`
    sqlState: '28000',
 
Run Code Online (Sandbox Code Playgroud)

fatal: true } ( 84.117.112.32) 有意修改。

我仔细检查了我usernamepassword,事实上,我从工作台提出了请求,一切顺利。

这就是我创建/初始化 sql 的方式

const mysql = require('mysql')
const config = require('./../../config.js')


const connectionName = config.DB_CONNECTION_NAME
console.log(`Connection name: ${config.DB_CONNECTION_NAME}`)
const configSQL = {
    host: config.DB_HOST,
    user: config.DB_USER,
    password: config.DB_PASSWORD,
    database: config.DB_DATABASE
}

// Connection to cloud sql in production

if (!process.env.dev) {
    configSQL.socketPath = `/cloudsql/${connectionName}`;
}

//SQL Config
const pool = mysql.createPool(configSQL)

// Checking if it …
Run Code Online (Sandbox Code Playgroud)

javascript mysql google-cloud-sql firebase google-cloud-functions

5
推荐指数
2
解决办法
1552
查看次数