#javascript #reactjs #ecmascript-6
#javascript #reactjs #ecmascript-6
Вопрос:
Я пытаюсь объединить объекты, как показано ниже
export const extractSourceOfData = (library, isJsonData) => {
const id = isJsonData ? library?.sourceOfData?.id : library?.sourceOfDataId;
return { codesStandardsAndGuidelines: id ? [id] : null };
};
export const extractMaterialType = (library, isJsonData) => {
const id = isJsonData ? library?.materialType.id : library?.materialTypeId;
return { constructionMaterialTypes: id ? [id] : null };
}
и в другом компоненте я импортирую обе вышеуказанные функции и объединяю, как показано ниже
import CODE_STANDARD_GUIDELINE, { extractSourceOfData } from '../codeStandardGuideline';
import CONSTRUCTION_MATERIAL_TYPE, { extractMaterialType } from './constructionMaterialType';
export const extractSecondaryIds = {
let secondaryIds = Object.assign{{}, ...extractSourceOfData, ...extractMaterialType };
return secondaryIds
}
но при получении ошибки у оператора распространения, не мог бы кто-нибудь, пожалуйста, помочь мне в этом, заранее спасибо.
Комментарии:
1. вы не вызываете функции.
extractSourceOfData
это функция, а не объект2. извините, мне нужно получить объект из обеих двух функций и создать объединенный объект из этих двух.
3. Либо сделайте
{ ...extractSourceOfData(), ...extractMaterialType() }
, либоObject.assign{{}, extractSourceOfData(), extractMaterialType() };
4. тем не менее, он говорит ‘,’ ожидается
export const extractSecondaryIds = { let secondaryIds = Object.assign({}, extractSourceOfData(), extractMaterialType()); return secondaryIds; }
5. Не делай
Object.assign({}, ...extractSourceOfData(), ...extractMaterialType());
, делайObject.assign({}, extractSourceOfData(), extractMaterialType());
Ответ №1:
Попробуйте:
const merged = {...extractSourceOfData(), ...extractMaterialType()};