【发布时间】:2021-04-20 16:37:18
【问题描述】:
我想在 koa 中创建一个可以呈现反应组件并提供 html 文件的应用程序。 最准确地说,我想在简单的 HTML 中添加 React,但是当我使用我的应用程序时,我可以读取我的 html 文件,但不能读取我的 react 组件。
我有一个 Koa.js 服务器
require('isomorphic-fetch');
const Koa = require('koa');
const dotenv = require('dotenv');
const serve = require('koa-static');
const logger = require('koa-logger');
dotenv.config();
const server = new Koa();
const port = parseInt(process.env.PORT, 10) || 8000;
router = require(./router);
server.use(serve('./public'))
.use(logger());
.use(router.routes())
.use(router.allowedMethods());
server.listen(port, () => {
console.log(`> Ready on http://localhost:${port}`);
在我的公共文件夹中,我有一个 html 和 css 文件。 例如:
<head>
<!-- Note: when deploying, replace "development.js" with "production.min.js". -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="/react-component/date-picker.js"></script>
</head>
<body>
<p>You can look a React components :) :</p>
<div id = 'Date'></p>
</body>
最后我有一个文件夹,其中包含所有 React 组件( react-component )和我的一个 React 组件:
import React from "react";
import ReactDOM from "react-dom";
import {AppProvider} from "@shopify/polaris";
import en from '@shopify/polaris/locales/en.json';
import "@shopify/polaris/dist/styles.css";
import {useCallback, useState} from 'react';
import {DatePicker} from '@shopify/polaris';
function DatePickerExample(props) {
const [{month, year}, setDate] = useState({month: 1, year: 2018});
const [selectedDates, setSelectedDates] = useState({
start: new Date('Wed Feb 07 2018 00:00:00 GMT-0500 (EST)'),
end: new Date('Mon Mar 12 2018 00:00:00 GMT-0500 (EST)'),
});
const handleMonthChange = useCallback(
(month, year) => setDate({month, year}),
[],
);
return (
<DatePicker
month={month}
year={year}
onChange={setSelectedDates}
onMonthChange={handleMonthChange}
selected={selectedDates}
multiMonth
allowRange
/>
);
}
const domContainer = document.getElementById('date');
ReactDOM.render(e(DatePickerExample), domContainer);
我认为 koa-static 存在问题,因为使用 koa-logger,我明白了:
<-- GET /react-component/date-picker.js
--> GET /react-component/date-picker.js 404 0ms
但我不知道如何解决这个问题。 谢谢大家:)
【问题讨论】:
标签: javascript html reactjs koa