我是新手,我会尝试优化性能.
我的触摸事件非常缓慢,我正在通过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)
[问题:]有人可以告诉我如何在应用程序中使用它/应该使用它吗?
我有问题弄清楚为什么我的应用程序正在做无休止的渲染.
在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) 我在 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归档?
我试图在反应本地而不是星星的情况下绘制星形图案,假设是方形框.
星形图案看起来像这样
****
****
****
****
****
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)
问题:我该怎么办?
当我偶然发现台词时,我正在查看猫鼬文档
猫鼬查询不是承诺。为了方便起见,它们具有.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
我正在尝试将我制作的微型 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 …
我有一个 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) 我正在使用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) 有人可以帮助我理解如何从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
我收到一个如下所示的错误(在我的函数日志中)
用户访问被拒绝\'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) 有意修改。
我仔细检查了我username的password,事实上,我从工作台提出了请求,一切顺利。
这就是我创建/初始化 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
javascript ×5
reactjs ×5
react-native ×4
firebase ×3
node.js ×3
express ×1
mongoose ×1
mysql ×1
sockets ×1
typescript ×1