[英]React: “Undefined” when binding an exported function
首先,我要說我是React和JS的新手,到目前為止,我閱讀的文檔並沒有幫助我解決這個問題,而且我似乎遇到了麻煩。
我有兩個js文件,一個是login.js,另一個是menu.js。 我正在嘗試將令牌(從login.js)輸出到由OnClick函數(在menu.js中)觸發的控制台,單擊時會收到未定義的錯誤。 最終目標是使我能夠訪問從login.js獲得的令牌,並將其用於其他文件和組件中,以便我可以在登錄后保留身份驗證。 我想念什么?
謝謝
**//login.js snippet**
var jsforce = require('jsforce');
var conn = new jsforce.Connection({
oauth2 : {
// you can change loginUrl to connect to sandbox or prerelease env.
loginUrl : 'https://test.salesforce.com',
clientId : '0123456789',
clientSecret : '0123456789',
redirectUri : 'https://test.salesforce.com/services/oauth2/token',
}
});
conn.login(email, password, function(err, userInfo) {
if (err) { return console.error(err,email,password);
}
// Now you can get the access token and instance URL information.
// Save them to establish connection next time.
//console.log(conn.accessToken);
console.log(conn.instanceUrl);
exports.token = conn.accessToken
// logged in user property
console.log("User ID: " + userInfo.id);
console.log("Org ID: " + userInfo.organizationId);
// ...
//Forward na Profil screen
setTimeout(function(){
forwardTo('/menu');
},1280);
})
**//Menu.js snippet**
import React from 'react';
import ReactDOM from 'react-dom';
import { Link } from 'react-router';
import { render } from 'react-dom';
import login from '../pages/login.js';
var jsforce = require('jsforce');
onLinkClicked () {
console.log(login.token)
}
render () {
return (
<div className='menubox' id='menubox'>
<button
type='submit'
onClick={this.onLinkClicked.bind(this)}>
Search
</button>
</div>
)
}
}
export default menuScreen;
您確定單擊登錄后登錄響應有效還是已加載? 您可以在chrome中使用開發人員工具並檢查響應是什么。
我能夠使用sessionStorage.setItem(“ token”,token);保存令牌。 在login.js中,並通過向onClick函數添加accessToken:sessionStorage.getItem('token')從menu.js中檢索令牌。 我想如果您想全局訪問身份驗證數據,可以使用sessionstorage。我能夠成功查詢該站點。 謝謝您的幫助!
**//login.js snippet**
var jsforce = require('jsforce');
var conn = new jsforce.Connection({
oauth2 : {
// you can change loginUrl to connect to sandbox or prerelease env.
loginUrl : 'https://test.salesforce.com',
clientId : '0123456789',
clientSecret : '0123456789',
redirectUri : 'https://test.salesforce.com/services/oauth2/token',
}
});
conn.login(email, password, function(err, userInfo) {
if (err) { return console.error(err,email,password);
}
var token = conn.accessToken;
console.log(conn.instanceUrl);
exports.token = conn.accessToken
sessionStorage.setItem("token", token);
// logged in user property
console.log("User ID: " + userInfo.id);
console.log("Org ID: " + userInfo.organizationId);
// ...
//Forward na Profil screen
setTimeout(function(){
forwardTo('/menu');
},1280);
})
**//Menu.js snippet**
import React from 'react';
import ReactDOM from 'react-dom';
import { Link } from 'react-router';
import { render } from 'react-dom';
import login from '../pages/login.js';
var jsforce = require('jsforce');
onLinkClicked () {
var jsforce = require('jsforce');
var jsforce = require('jsforce');
var conn = new jsforce.Connection({
serverUrl : 'https://cs63.salesforce.com',
accessToken : sessionStorage.getItem('token')
})
conn.search("FIND {Un*} IN ALL FIELDS RETURNING Account(Id, Name), Lead(Id, Name)",
function(err, res) {
if (err) { return console.error(err); }
console.log(res);
}
)
}
render () {
return (
<div className='menubox' id='menubox'>
<button
type='submit'
onClick={this.onLinkClicked.bind(this)}>
Search
</button>
</div>
)
}
}
export default menuScreen;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.