const result = await modal({
title: ...,
type: 'confirm',
acceptText: 'Подтвердить',
...
})showPopup() {
this.isDialogShown = true;
this.pending = new Promise((resolve) => {
this.discardChanges = () => resolve(false);
this.saveChanges = () => resolve(true);
});
},
async changeTab() {
...
return await this.pending;
}changeTab() {
return new Promise((resolve) => {
this.discardChanges = () => resolve(false);
this.saveChanges = () => resolve(true);
});
}index - и есть в данном случае ключ. Т.е. проверять нужно просто index === 'dateTime'.v-for="(filter, key, index) in filters". Однако в твоём случае он не нужен, т.к. лучше привязывать key именно к ключу.prettier - это одно, eslint - это другое, если у тебя prettier подключается через eslint, то настройки для него указываются скопом, условно так:rules: {
'prettier/prettier': ['warn', {
semi: false,
...
singleQuote: true,
vueIndentScriptAndStyle: true,
arrowParens: 'avoid',
trailingComma: 'none',
quoteProps: 'consistent',
}], const options = computed(() => {
if (props.secondType)
return props.secondTypeItems.map(({ id, value}) => ({
label: value,
value: id
}));
if (props.thirdType)
return props.thirdTypeEvents.map(({ desc, name }) => ({
label: name,
value: desc
}));
// ...
return [];
});<el-select
v-model="modelText"
placeholder="Выберите предмет"
@change="changeVal"
>
<el-option
v-for="{ label, value} in options"
:key="value"
:label="label"
:value="value"
>
{{ label }}
</el-option>
</el-select> axios.post('http://localhost:5000/api/create-post', () => {
body: data
}) Во-первых: axios принимает параметром объект, а не функцию возвращающую объект.axios.post вообще сразу принимает body: axios.post('http://localhost:5000/api/create-post', data)() => {
body: data
} на самом деле расшифровывается так: () => { // начало блока кода
// метка body указывающий на висящую в воздухе переменную data
body: data
// никакого возврата из функции
} // конец блока кода чтобы оно воспринималось как объект, можно, например, заключать в скобки: () => ({
body: data
}) // версия с рантайм компилятором шаблонов
import { createApp } from 'vue/dist/vue.esm-bundler.js';
function renderVueComponent(template, data) {
const div = document.createElement('div');
createApp({
template,
data: () => data
}).mount(div);
return div.innerHTML;
} type).type ExtraProps = {
size?: 's' | 'm' | 'l';
}
type AnchorProps = ExtraProps & {href: string};
type ButtonProps = ExtraProps & {type: string};
function TappableComponent(props: AnchorProps ): ReactNode;
function TappableComponent(props: ButtonProps ): ReactNode;
function TappableComponent(props: AnchorProps | ButtonProps ) {
const Component = 'href' in props ? 'a' : 'button';
return <Component>...</Component>
}currentTarget а не target, потому что target может оказаться например span внутри этой ссылки, а не она сама. cartEmptyImg. declare module '*.png' {
const png: string;
export default png;
}appendChild у null". appendChild в данном месте? document.body, так? document.body === null? body нет на странице. body нет на странице? body ещё не прочитан. head и не ждёт загрузки документа.body и всё работало, а сейчас wp подключает его в head, как принято.body в wp, либо, что лучше, дожидаться в скрипте загрузки документа(DOMContentLoaded).