[英]How to import function from another file into reactjs component?
我有一個 main.js 文件
function convertToFahrenheit(param) {
return param * 2 + 30;
}
function convertToCelsius(param) {
return (param - 32) * 1.8;
}
我已將它導入到我的組件中,但它似乎不起作用,我還檢查了 devtool 的路徑,並且該文件完全存在
import React from "react";
import TemperatureInput from "./TemperatureInput.js";
import "../assets/js/main.js";
class Caculator extends React.Component {
constructor(props) {
super(props);
this.state = {
type: "c",
temperature: 0,
};
}
handleCelsiusChange = (value) => {
this.setState({
temperature: value,
type: "c",
});
};
handleFahrenheitChange = (value) => {
this.setState({
temperature: value,
type: "f",
});
}
render() {
let valueCelsius = this.state.type === 'c' ? this.state.temperature : convertToCelsius(this.setState.temperature);
return (
<div id="caculator">
<TemperatureInput type={this.state.type} changeInput = {this.handleCelsiusChange}/>
<TemperatureInput type={this.state.type} changeInput = {this.handleFahrenheitChange} />
</div>
);
}
}
export default Caculator;
我得到的是
'convertToCelsius' is not defined no-undef
如何在我的組件中使用這個 function?
嘗試這個
export function convertToFahrenheit(param) {
return param * 2 + 30;
}
export function convertToCelsius(param) {
return (param - 32) * 1.8;
}
然后在你的組件中
import { convertToCelsius } from "../assets/js/main.js";
您需要導出 main.js 中的函數,然后使用正確的語法將它們導入到組件中。 嘗試這個:
export function convertToFahrenheit(param) {
return param * 2 + 30;
}
export function convertToCelsius(param) {
return (param - 32) * 1.8;
}
然后為導入執行以下操作
import React from "react";
import TemperatureInput from "./TemperatureInput.js";
import { convertToFahrenheit, convertToCelsius } from "../assets/js/main.js";
這個網站更詳細地介紹了它: https://www.geeksforgeeks.org/reactjs-importing-exporting/
在 main.js 中使用export
export function convertToFahrenheit(param) {
return param * 2 + 30;
}
並命名為導入
import {convertToFahrenheit} from "../assets/js/main.js";
有多種方法可以通過使用 ES6 import
和export
語法來獲取 function
簡而言之, export
允許您一次導出多個表達式,而export default
只允許導出一個表達式。 此外,對於那些由export
暴露的東西, import
時需要括號,而export default
不需要。
選項 1:通過命名導入export
export function convertToFahrenheit(param) {
return param * 2 + 30;
}
export function convertToCelsius(param) {
return (param - 32) * 1.8;
}
//imported in your needed file
import {convertToFahrenheit, convertToCelsius} from '../assets/js/main.js'
選項 2:另一種使用按名稱export
的方式導入
function convertToFahrenheit(param) {
return param * 2 + 30;
}
function convertToCelsius(param) {
return (param - 32) * 1.8;
}
export {convertToFahrenheit, convertToCelsius}
//imported in your needed file
import {convertToFahrenheit, convertToCelsius} from '../assets/js/main.js'
選項 3: export default
(函數、class、object、數組...)
//demo for exporting 1 function
export default function convertToFahrenheit(param) {
return param * 2 + 30;
}
//imported in your needed file, the name can be customised by you.
import myOwnFunc from '../assets/js/main.js'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.