У меня был main.html внутри клиентской папки со многими меню, заголовком, нижним колонтитулом и т. Д. Я также объявил внутри него div, который будет отображаться компонентом.

...
 <div id="render-slides"></div>
 ...

И мой main.js:

import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import 'bootstrap';
import 'bootstrap/dist/css/bootstrap.css';
import 'animate.css/animate.min.css'
import '../imports/css/sidebar.css';
//import './imports/js/nodcast.js';
//import './main.html';

import React from 'react';
import { Meteor } from 'meteor/meteor';
import { render } from 'react-dom';

import '../imports/startup/accounts-config.js';
import App from '../imports/ui/App.js';

Meteor.startup(() => {
  render(<App />, document.getElementById('render-slides'));
});

Он визуализировал слайды из компонента, но я не мог щелкнуть по ним, как если бы они были покрыты другими div. Итак, я полностью заменил свой main.html на:

<head>

</head>

<body>
    <div id="render-slides"></div>
</body> 

И переименовал мой старый main.html в main2.html. Когда я запускаю программу, она показывает мои слайды рендеринга внутри старой структуры (menuse, ...) в main2.html, и у меня нет проблем с нажатием кнопки !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Однако, если я перемещаю main2.html, у меня остаются пустые файлы html, содержащие отрисованные компоненты. Обратите внимание, что в обоих html файлах у меня есть <div id="render-slides"></div>. Итак, мне интересно, как это работает! Он просто объединяет все html-файлы внутри клиентского каталога и отображает их вместе? !!

2
Ahmad 15 Окт 2019 в 21:27

1 ответ

Лучший ответ

Он просто объединяет все html-файлы внутри клиентского каталога и отображает их вместе? !!

Да, это поведение Meteor при активной загрузке по умолчанию. Более того, все, что называется «main», загружается в последнюю очередь, поэтому ваш старый файл «main2.html» появляется первым, а его идентификатор выбирается первым для визуализации ваших слайдов внутри.

Meteor загрузит все файлы вне любого каталога с именем imports/ в приложении, используя правила порядка загрузки файлов по умолчанию.

См. https://guide.meteor.com/structure.html#load-order

2
ghybs 16 Окт 2019 в 02:07