如何将 ReactJS 应用程序与 Wagtail 集成 API。要遵循的步骤?

How to integrate ReactJS application with Wagtail API. Steps to follow?

我正在尝试在 ReactJS 中编写应用程序,后端将使用 Wagtail API。 我正在尝试找出所有 steps/what 所有配置都需要在前端以及后端完成以将 ReactJS 与 Wagtail 集成?

使用哪个后端并不重要。您只需要在 React 中从 API 调用服务。

小例子:

文件index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from "./App";

export class ReactApp {
    static renderService(props, element) {
        ReactDOM.render(<App {...props}/>, element);
    }
}

window.ReactApp = ReactApp;

文件App.js

import React from 'react';

class App extends React.PureComponent {

    constructor(props) {
        super(props);

        this.state = {
            data: null,
            inProgress: false
        }
    }

    async fetchData(url) {
        return await fetch(url)
            .then((response) => response.json())
            .then(data => this.setState({data}))
            .finally((e) => {
                this.setState({inProgress: false})
            });
    }

    componentDidMount() {
        this.fetchData(this.props.url);
    }


    render() {
        const {data, inProgress} = this.state;

        return (
            <div className="app">
                {
                    !inProgress && data &&
                    (
                        <div className="app__list">
                            {
                                data.map(item => <span className="app__list-item">{item.title}</span>)
                            }
                        </div>
                    )
                }
            </div>

        );
    }
}

export default App;

然后使用带有 index.js 入口点的 webpack 构建你的 js 代码,并在你的 html

中调用它
<div id="app"></div>
<script  type="text/javascript" src="build.js"></script>
<script>
    ReactApp. renderService({url: 'https://yourApiUrl'}, document.getElementById('app'));
</script>