2
我有以下鳳凰文件夾結構:呼叫通道從另一個JS連接功能文件
web/
static/
js/
app.js
script.js
socket.js
app.js
有...
import socket from "./socket"
import script from "./script"
brunch-config.js
有...
files: {
javascripts: {
joinTo: "js/app.js"
}
// ...
}
script.js
有...
$('#some-button').on('click', function() {
connectToChannel(data);
});
socket.js
有...
import {Socket} from "phoenix"
let socket = new Socket("ws://example.com/updates", {params: {"auth-token": "AUTH-TOKEN"}})
function connectToChannel(data) {
socket.connect()
let channel = socket.channel("updates:new", {})
channel.join()
.receive("ok", resp => { console.log("Joined successfully", resp) })
.receive("error", resp => { console.log("Unable to join", resp) })
channel.on("update", payload => {
console.log(payload);
})
}
export default socket
...然而,當我點擊some-button
我得到在瀏覽器的控制檯下面的錯誤:
Uncaught ReferenceError: connectToChannel is not defined
連接成功,如果我把socket.js
的內容放在script.js
內,但我想保持它們分開。
我得到' Uncaught TypeError:(0,_script2.default)不是'app.js'中的一行,它表示'script(connectToChannel);''Uncaught TypeError:connectToChannel不是'I'行的函數' m調用該函數。 – webeno
您是否從'script.js'中導出默認*該函數?你從'socket.js'導出'export {socket,connectToChannel}'嗎?你可能錯過了一些東西,因爲這應該起作用。 我剛剛將這三個文件粘貼到一個空的早午餐應用程序中,它*正在工作。 –
對不起,您在答案中說過我必須* export default * that(which?)函數? – webeno