#javascript #reactjs #functional-programming
#javascript #reactjs #функциональное программирование
Вопрос:
У меня есть файл компонента React с именем FilterBox.jsx, в нем есть функция со следующим кодом:
addTimeFilter() {
var clickedItem2 = sessionStorage.getItem("clicked_value");
const fltr = TIME_FILTER_MAP['__time_range'];
const vals = '2019-03-25T00:00:00 : 2019-03-26T00:00:00';
const selectedValues = Object.assign({}, {"__time_range" : "2019-03-25T00:00:00 : 2019-03-26T00:00:00","BrandName" : clickedItem2});
selectedValues[fltr] = vals;
this.setState({ selectedValues, hasChanged: true });
if (this.props.instantFiltering) {
this.props.onChange(fltr, vals, false, true);
}
}
У меня есть другой файл, который является .js
файлом. Я хочу вызвать addTimeFilter()
внутри .js
файла. Пожалуйста, помогите мне, как это сделать.
Я попытался импортировать его следующим образом:
import FilterBox from '../../FilterBox';
Затем я попытался сделать это внутри функции в файле .js, чтобы вызвать следующую функцию:
function select(){
const filter = new FilterBox();
filter.addTimeFilter();
}
Но только импорт FilterBox из ‘.. / ../ FilterBox’ выдает мне ошибки
Комментарии:
1. где вы определили свою
addTimeFilter
функцию? внутри класса или вне класса?
Ответ №1:
Вы должны экспортировать addTimeFilter. Затем, когда вы импортируете функцию, попробуйте это:
import { addTimeFilter } from '../../FilterBox';
Я тоже вроде как новичок в react, но что-то вроде этого должно сработать! 🙂
РЕДАКТИРОВАТЬ: попробуйте экспортировать класс с помощью «export default FilterBox» в строке вашего файла
Ответ №2:
Вам нужно написать export
ключевое слово перед именем функции, чтобы другие файлы js знали, что импортировать.
export function addTimeFilter() {
/.../
}
Комментарии:
1. Нет, это не сработает, так как я уже экспортировал весь класс компонента с
export default FIlteBox
моим именем компонента2. Затем импортируйте его, как
import addTimeFilter from '../../FilterBox';
это должно работать3. Что
FIlteBox
вexport default FIlteBox
том, что для экспорта функции или класса (не для файла) мы используем ключевое словоexport
.4. FilterBox — это имя моего компонента / класса
5. Затем используйте
import FIlteBox from '../../FilterBox';
вместоimport addTimeFilter from '../../FilterBox';