Cannot assign to read only property 'shortcutLogType' of object '#<Object>'

211
26 апреля 2018, 10:18

Cannot assign to read only property 'shortcutLogType' of object '#'. Что это за ошибка, и как ее решить?

import * as React from "react";
import { ButtonCommonProps } from "../ButtonCommonProps";
import { UndoIcon } from "../../icon/svg";
import { withPressedLog } from "../withPressedLog";
import {
    ButtonConnected as Button,
    ButtonSize,
    ButtonLabelPosition,
} from "../Button";
import {
    isDeletePressed,
    isBackSpacePressed,
    isCtrlCmdZ,
} from "../../keyboard-utils/utils";
export class Undo extends React.Component<ButtonCommonProps, {}> {
    public static defaultProps = {
        label: "phone.undo",
        size: ButtonSize.Small,
    };
    public constructor(props: ButtonCommonProps) {
        super(props);
        this.shortcutValidator = this.shortcutValidator.bind(this);
    }
    private shortcutLogType: string = "";
    public render() {
        const labelPosition = this.props.labelPosition
            ? this.props.labelPosition
            : ButtonLabelPosition.Left;
        return (
            <Button
                {...this.props}
                role="undo-button"
                iconComponent={<UndoIcon innerHeight={70} state={this.props.state} />}
                labelPosition={labelPosition}
                shortcutValidator={this.shortcutValidator}
                shortcutHoldValidator={this.shortcutHoldValidator}
                onShortcutHold={this.props.onShortcutHold}
                shortcutLogType={this.shortcutLogType}
            />
        );
    }
    private shortcutValidator(e: KeyboardEvent) {
        this.shortcutLogType = "CLIENT_SHORTCUT_DELETE_UNDO";
        return isCtrlCmdZ(e) || isDeletePressed(e) || isBackSpacePressed(e);
    }
    private shortcutHoldValidator(e: KeyboardEvent) {
        this.shortcutLogType = "CLIENT_SHORTCUT_DELETE_CLEARALL";
        return isDeletePressed(e) || isBackSpacePressed(e);
    }
}
export default Undo;
export const UndoWithLog = withPressedLog(Undo, {
    type: "CLIENT_PRESSED_UNDO",
    enhancers: ["bets", "currency", "balance", "orientation"],
});

Answer 1
public constructor(props: ButtonCommonProps) {
        super(props);
        this.shortcutValidator = this.shortcutValidator.bind(this);
        this.shortcutHoldValidator = this.shortcutHoldValidator.bind(this);
    }
READ ALSO
Значение атрибута data-title

Значение атрибута data-title

Как должен выглядеть атрибут data-title, чтобы указывался не заголовок страницы, а название статьи?

237
Программа для windows (javascript)

Программа для windows (javascript)

Занимаюсь программированием около полугодаХорошо разбираюсь в javascript

271
Как сделать запрещенные сайты в боте

Как сделать запрещенные сайты в боте

У меня бот на nodejs для бессед вкНо бота легко можно слить если использовать команду !news

185
Можно ли повесить событие на текстовый узел в DOM?

Можно ли повесить событие на текстовый узел в DOM?

проверял, стандартными способами не получается, мб есть способ? Можно конечно, каждый узел в html тег обернуть и ловить событие, но мб есть другой...

211