获取数据时,我得到:无法对未安装的组件执行 React 状态更新。该应用程序仍然有效,但反应表明我可能导致内存泄漏。
这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请取消 useEffect 清理函数中的所有订阅和异步任务。”
为什么我不断收到此警告?
我尝试研究这些解决方案:
https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
https://developer.mozilla.org/en-US/docs/Web/API/AbortController
但这仍然给了我警告。
const ArtistProfile = props => {
const [artistData, setArtistData] = useState(null)
const token = props.spotifyAPI.user_token
const fetchData = () => {
const id = window.location.pathname.split("/").pop()
console.log(id)
props.spotifyAPI.getArtistProfile(id, ["album"], "US", 10)
.then(data => {setArtistData(data)})
}
useEffect(() => {
fetchData()
return () => { props.spotifyAPI.cancelRequest() }
}, [])
return (
<ArtistProfileContainer>
<AlbumContainer>
{artistData ? artistData.artistAlbums.items.map(album => {
return (
<AlbumTag
image={album.images[0].url}
name={album.name}
artists={album.artists}
key={album.id}
/>
)
})
: null}
</AlbumContainer>
</ArtistProfileContainer> …Run Code Online (Sandbox Code Playgroud) 我试图通过fillCalendar()从组件的方法中提取到它自己的js文件并导入它来清理这个反应组件.最初this.state.datesArray是在componentWillMount()生命周期方法中设置的.现在我正在尝试在构造函数中直接初始化它,因为这是react文档推荐的内容.这样做现在抛出"TypeError:Object(...)不是函数"错误,我不知道为什么.以下是Calendar.js 在这里看到的内容.
Calendar.js
import React, { Component } from 'react';
import { fillCalendar } from '../calendar.tools'
class Calendar extends Component {
constructor(props) {
super(props)
this.state = {
datesArray: fillCalendar(7, 2018),
date: new Date(),
monthIsOffset: false,
monthOffset: new Date().getMonth(),
yearOffset: new Date().getFullYear()
}
}
render() {
return (
...
)
}
}
Run Code Online (Sandbox Code Playgroud)
calendar.tools.js
let fillCalendar = (month, year) => {
let datesArray = []
let monthStart = new Date(year,month,1).getDay()
let yearType = false;
let filledNodes = …Run Code Online (Sandbox Code Playgroud) 如果monthOffset = 12条件将评估为true,并将yearOffset状态更新为2017 yearOffset = 2018。根据我读过的react docs和其他答案,this.setState状态更新后,回调函数会触发,但console.log()仍会输出2018。我尝试了几种其他方法,根据其他相关问题的答案来实现此代码问题,但我的没有用。我不知道为什么。
handleClick(e) {
const { monthOffset, yearOffset } = this.state
this.setState({ monthOffset: monthOffset - 1 })
if ( monthOffset - 1 === 11 ) { this.setState((prevState) => {
return { yearOffset: prevState.yearOffset - 1 } },
() => {console.log("yearOffset", yearOffset)}
)}
console.log("clicked")
}
Run Code Online (Sandbox Code Playgroud) 当集成 Sign in with Apple 时,您会在您的 Apple 开发者帐户中生成一个密钥。
这是一个名为AuthKey_3JMD5K6.p8和看起来像的文件
-----BEGIN PRIVATE KEY-----
MasdfjalskdasdflaASDFAadsflkjaADSFAewfljasdfljkasefasdflkjasdf
asdfljkasdfASDFASDFoiqretasdoiyjlfsbgREtaREGSDFBREtafsrgAREGfdsgaregR
LKJIOEWFNLasdflkawefjoiasdflk
-----END PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
所以我做了一个var appleKey := MasdfjalskdasdflaASDFAadsflkjaADSFAewfljasdfljkasefasdflkjasdf asdfljkasdfASDFASDFoiqretasdoiyjlfsbgREtaREGSDFBREtafsrgAREGfdsgaregRLKJIOEWFNLasdflkawefjoiasdflk
我之前已经使用 HMAC-SHA 方法对 jwt 进行了签名,这相当简单,但我不知道如何使用 ECDSA 方法对 jwt 进行签名。
我以与 HMAC-SHA 方法相同的方式编写代码,但出现错误key is of invalid type
那么使用 golang 的 jwt 库如何使用 ECDSA 方法签署我的 jwt ?
我的代码
-----BEGIN PRIVATE KEY-----
MasdfjalskdasdflaASDFAadsflkjaADSFAewfljasdfljkasefasdflkjasdf
asdfljkasdfASDFASDFoiqretasdoiyjlfsbgREtaREGSDFBREtafsrgAREGfdsgaregR
LKJIOEWFNLasdflkawefjoiasdflk
-----END PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
我现在知道这不是你的做法,而且比这更复杂一些,但是该怎么做呢?
我发现这篇文章告诉您如何手动执行此操作:
http://p.agnihotry.com/post/validating_sign_in_with_apple_authorization_code/
但我已经将 golang 的 jwt 库用于令牌的其他部分: https:
//godoc.org/github.com/dgrijalva/jwt-go
我正在尝试按照本指南将 SwiftUI 视图移植到本机反应中。它在 swift 项目中构建良好,但在 React Native 项目中构建良好。
我收到以下错误:
Undefined symbols for architecture x86_64:
"_swift_getOpaqueTypeConformance", referenced from:
lava.ColorWheelView.body.getter : some in ColorWheelView.o
closure #2 (SwiftUI.GeometryProxy) -> <<opaque return type of lava.ColorWheelView.makeView(SwiftUI.GeometryProxy) -> some>>.0 in lava.ColorWheelView.body.getter : some in ColorWheelView.o
associated type witness table accessor for SwiftUI.View.Body : SwiftUI.View in lava.ColorWheelView : SwiftUI.View in lava in ColorWheelView.o
l_get_witness_table qd0__7SwiftUI4ViewHD3_AaBPAAE7gesture_9includingQrqd___AA11GestureMaskVtAA0F0Rd__lFQOyAA15ModifiedContentVyAA6ZStackVyAA05TupleC0VyAJyAA06_ShapeC0VyAA9RectangleVAA5ColorVGAA12_FrameLayoutVG_AJy4lava010GuitarPickC0VAA13_OffsetEffectVGtGGAA09_PositionP0VG_AA06_EndedF0VyAA0f5StateF0VyAA08_ChangedF0VyAA04DragF0VGSo7CGPointVSgGGQo_HO in ColorWheelView.o
associated type witness table accessor for SwiftUI.View.Body : SwiftUI.View in lava.TrianglePath : SwiftUI.View in lava in GuitarPickView.o
associated …Run Code Online (Sandbox Code Playgroud) 我将过期日期插入到具有以下架构的 Postgres 列中:
exp DATE NOT NULL
我在 Golang 中创建这些日期的方式是使用使用Time数据类型的“时间”库(不确定它的基础类型是否是字符串,go 文档没有真正指定请参阅此处)。
这是我如何使用pgx库 进行插入
expirationDate := time.Unix(expiresAt, 0)
sql := `
insert into items
(sub, uuid, exp)
VALUES ($1, $2, $3)
`
_, err := connection.Exec(
context.Background(),
sql,
subject,
id,
expirationDate,
)
Run Code Online (Sandbox Code Playgroud)
我的代码中的其他地方expiresAt是这样的:
days := 1 * 24 * time.Hour
expirationTime := time.Now().Add(days)
expirationTime.Unix() // this is what's being passed in my function (expiresAt int64) that does the DB insertion
Run Code Online (Sandbox Code Playgroud)
问题是试图从 Postgres 中取回该日期。
当我在 …
如果最大值char可以保持为255,那么如果我创建一个类型的变量char number并将其设置为等于= 255;那么std::cout << number;程序如何返回\377呢?
试图弄清楚如何使用组合快速发出 http 请求。我主要是在看Apple 的这个文档。我没有取得任何进展,而且看起来很简单,所以我不知道我做错了什么。
我习惯使用 JavaScript 并使用Fetch API
也使用Golang 中的http pkg
但出于某种原因,在 Swift 中这样做对我来说真的很困惑,因为它不像我提到的两个那样精简
我将 SwiftUI 与 MVVM 架构一起使用,所以我的目标是在我的视图模型中实现一种与 Golang 服务器通信的方式。
这就要求大多POST与请求Accept和Authorization头部和JSON身体
我试过这个代码:
let url = URL(string: "https://api.example.com/user/login")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue(String(format: "Bearer %s", idToken!), forHTTPHeaderField: "Authorization")
_ = URLSession.shared.dataTaskPublisher(for: request)
.tryMap() { element -> Data in
// not worried about the status code just trying to get any response. …Run Code Online (Sandbox Code Playgroud) javascript ×3
reactjs ×3
go ×2
c++ ×1
combine ×1
ecdsa ×1
fetch ×1
http ×1
import ×1
ios ×1
jwt ×1
objective-c ×1
postgresql ×1
react-hooks ×1
react-native ×1
setstate ×1
swift ×1
swiftui ×1