Это частичный код, я пытаюсь заставить его работать
const myarr = [
{a: 'haha',},
{b: 'yoyo',}
];
const myobj = {
a: 'some',
b: 'kind',
};
console.log(myarr);
play(...myobj);
console.log(props);
Так что у него не будет проблем с расширением массива, но когда я пройду расширение объекта, я получу ошибку
TypeError: Неверная попытка распространить не повторяемый экземпляр
Я добавил babel-plugin-transform-object-rest-spread
плагин с настройкой, но такая же ошибка.
Что здесь происходит?
Вот мой репозиторий для воспроизведения: https://github.com/adamchenwei/vue-hoc-playground контрольный файл /src/components/decorator/withCustomComponent.js
Код:
export default function withCustomComponent(InnerComponent) {
return {
mounted() {
console.log('withCustomComponent is mounted');
},
render() {
const myarr = [
{a: 'haha',},
{b: 'yoyo',}
];
const myobj = {
a: 'some',
b: 'kind',
};
console.log(myarr);
play(myobj);
console.log(props);
return <InnerComponent
class="myinner"
data-event="load"
/>;
}
}
}
export const WithCustom = {
name: 'WithCustom',
render() {
const Slott = this.$slots.default[0];
// return <Slott />;
return this.$slots.default[0];
// return <h1>slott</h1>;
}
};
function play({a,b}) {
console.log('play')
console.log(JSON.stringify(a));
console.log(`${a} ${b}`);
}
function fakeCall(params, callback) {
setTimeout(() => {
callback('https://avatars0.githubusercontent.com/u/6078720?s=200&v=4')
}, 1000);
}
Документ об операторе распространения для объекта https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax#Spread_in_object_literals