我已经使用React扫描了qrcode。它显示了结果。我的代码没问题。但是我想把结果保存在一个变量中。我如何使用react做到这一点?下面是我的代码。我想保存结果(扫描后收到的qrcode)在一个变量。
import React, { Component } from 'react'
import QrReader from 'react-qr-scanner'
class App extends Component {
constructor(props){
super(props)
this.state = {
delay: 100,
result: 'No result',
}
this.handleScan = this.handleScan.bind(this)
}
handleScan(data){
let value= this.setState({
result: data,
})
console.log(value);
}
handleError(err){
console.error(err)
}
render(){
const previewStyle = {
height: 240,
width: 320,
}
return(
<div>
<QrReader
delay={this.state.delay}
style={previewStyle}
onError={this.handleError}
onScan={this.handleScan}
/>
<p>{this.state.result}</p>`enter code here`
</div>
)
}
}
export default App;
您已经有了一个变量。这个.state.result在你成功扫描后保存你的数据。如果你出于某种原因想要复制它你可以说
let value = [...this.state.result]
我不确定这个值到底是什么样子的,或者你需要它做什么,但这是一种将值保存到新变量中的方法。
你的句柄应该是
handleScan(data){
this.setState({
result: data,
})
console.log(data);
}
handleScan(data)
函数必须是这样的:
handleScan(data){
let value = data
this.setState({ result: data })
console.log(value)
}
让我看看这是怎么回事。
- 将变量
data
的值保存到变量value
- 将变量
data
的值保存到状态对象 - 打印保存在变量
value
中的值
或者直接使用状态来保存和打印值。
handleScan(data){
this.setState({ result: data })
console.log(this.state.result)
}