我在界定函数时遇到了一些麻烦。我试图获得“item”的价值,但当我尝试在函数外部访问它时,我得到了未定义的值。如何使外部的LinkClicked()可以访问“item”?我需要能够在我的渲染中使用物品。如何在JS/React中访问外部嵌套函数?
onLinkClicked() {
var parent = this.state.username
//console.log(this.state.username)
var conn = new jsforce.Connection({
serverUrl: 'https://cs63.salesforce.com',
accessToken: sessionStorage.getItem('token')
})
conn.query("SELECT Id, Name, Phone FROM Contact WHERE LastName='" + parent + "'",
function(err, result) {
if (err) {
return console.error(err);
}
var a = result
a.records.forEach(function(item) {
result = (item.Name + ' ' + item.Phone);
console.log(item) // I'm trying to get the value of item, which outputs correctly here
});
}
)
console.log(item) //Here I get undefined due to being out of scope, how can I access item?.
}
render() {
return (
<div className='menubox' id='menubox'>
<div className='searchbar-container'>
<form onSubmit={e => e.preventDefault()}>
<input
type='text'
size='25'
placeholder='Contact Last Name'
onChange={this.handleChange.bind(this)}
value={this.state.username} />
<button
type='submit'
onClick={this.onLinkClicked.bind(this)}>
Search
</button>
</form>
</div>
<div dangerouslySetInnerHTML={ { __html: item } }>
</div>
</div>
)
}
请修复您的缩进,空格和分号。你的代码是无法读取的。 – user3637541
我希望没有人的用户名恰好是'Robert'; DROP TABLE联系人; - ' – roippi
我在本地运行此程序,一旦我拥有了所有的工作,我会放弃修复该问题。 –