Есть ли способ использовать ComponentDidMount () и ComponentDidUpdate () в расширении настройщика приложений в SPFX - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь реализовать код веб-части внутри расширения, я смог это сделать. Но когда я запускаю код ComponentDidMount (), ComponentDidUpdate () не вызывается. Возможно ли это реализовать или нет? Я хочу это знать.

Не стесняйтесь делиться своими знаниями

Спасибо

1 Ответ

0 голосов
/ 17 января 2020

С практической точки зрения, я не думаю, что вы хотите запускать componentDidUpdate () в расширении, если у вас нет довольно хорошего оператора if.

Но я думаю, что componentDidMount должен работать.

В моем файле customizer.ts я создаю элемент React после Init

const element: React.ReactElement<IAcgBobBotProps> = React.createElement(
                AcgBobBot,
                {
                    webChatToken: this.properties.webChatToken
                }
            );
            ReactDom.render(element, this._bottomPlaceholder.domElement);

и создаю компонент в новом TSX-файле \ components \ AcgBobBot.tsx:

export default class AcgBobBot extends React.Component<IAcgBobBotProps, IAcgBobBotState> {

    public componentDidMount() {
        console.log("Hi from componentDidMount");
    }
    public render(): React.ReactElement<IAcgBobBotProps> {

    ...
}

Лично я также поместил свою «веб-часть» React в заполнитель, точно скопировав код отсюда: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/extensions/get-started/using-page-placeholder-with-extensions

...