この関数からPromise
を返しています
_const liab_config = () => {
return axios.get(`${config.server_url}/fetch_config_liab`);
}
export default { liab_config }
_
そして、別のファイル内でPromise
を処理しようとしています
_import liab_config from './utils/kc-adapter'
function set_liab_config(){
liab_config().then((response) => {
if(response.data.success){
let { kc_config_liab } = response.data;
return kc_config_liab['auth-server-url'];
}
else
return null;
}).catch(ex =>
console.log(ex));
}
_
ここで私はエラーを取得しています:
Uncaught TypeError:Object(...)は関数ではありません
行liab_config().then((response)
。その理由は何でしょうか?
オブジェクトリテラルをデフォルトでエクスポートしています。名前付きエクスポートを使用したい
const liab_config = …;
export { liab_config as liab_config }
// shorter:
const liab_config = …;
export { liab_config }
// or just:
export const liab_config = …;
と
import { liab_config } from './utils/kc-adapter'
またはデフォルトのエクスポート
const liab_config = …;
export { liab_config as default }
// or just:
default export const liab_config = …;
// or without the local name:
default export …;
と
import liab_config from './utils/kc-adapter'
このようなものにアクセスしているとき
import liab_config from './utils/kc-adapter'
それはあなたがのように書かれなければならないデフォルトのエクスポートを求めていることを意味します
const liab_config = () => {
return axios.get(`${config.server_url}/fetch_config_liab`);
}
export { liab_config as default };
またはこのように
const liab_config = () => {
return axios.get(`${config.server_url}/fetch_config_liab`);
}
export default liab_config;
そして、それをデフォルトにしたくない場合は、次のように渡します
export const liab_config = () => {
return axios.get(`${config.server_url}/fetch_config_liab`);
}
または
const liab_config = () => {
return axios.get(`${config.server_url}/fetch_config_liab`);
}
export { liab_config };
そしてそれにアクセスする
import {liab_config} from './utils/kc-adapter'