Попробуйте
if ($_POST['submit']) {
$success= mail($to, $subject, $body, $from);
if($success)
{
echo '
<p>Your message has been sent!</p>
';
} else {
echo '
<p>Something went wrong, go back and try again!</p>
';
}
}
Теперь у нас есть предложение динамического импорта с ECMA. Это находится на этапе 3. Это также доступно как babel-preset .
Ниже приведен способ сделать условный рендеринг в соответствии с вашим случаем.
if (condition) {
import('something')
.then((something) => {
console.log(something.something);
});
}
Это в основном возвращает обещание. Ожидается, что ожидается, что модуль обещания получит модуль. В предложении также есть другие функции, такие как множественный динамический импорт, импорт по умолчанию, импорт js-файла и т. Д. Здесь вы можете найти более подробную информацию о динамических импортерах здесь .
Вы не можете импортировать условно, но вы можете сделать обратное: экспортировать что-то условно. Это зависит от вашего прецедента, поэтому эта работа может быть не для вас.
Вы можете сделать:
api.js
import mockAPI from './mockAPI'
import realAPI from './realAPI'
const exportedAPI = shouldUseMock ? mockAPI : realAPI
export default exportedAPI
apiConsumer. js
import API from './api'
...
Я использую это, чтобы издеваться над аналитическими библиотеками, такими как mixpanel и т. д. ... потому что в настоящее время я не могу иметь несколько построек или наш интерфейс. Не самый элегантный, но работает. У меня просто есть несколько «если» здесь и там в зависимости от среды, потому что в случае mixpanel ему нужна инициализация.
Если вы хотите, вы можете использовать require. Это способ иметь условный запрос require.
let something = null;
let other = null;
if (condition) {
something = require('something');
other = require('something').other;
}
if (something && other) {
something.doStuff();
other.doOtherStuff();
}
Похоже, что ответ заключается в том, что на данный момент вы не можете.
http://exploringjs.com/es6/ch_modules.html#sec_module-loader-api
Я думаю, что цель состоит в том, чтобы максимально использовать статический анализ, и условно импортированные модули нарушают это. Также стоит упомянуть - я использую Babel , и я предполагаю, что System
не поддерживается Babel, потому что API загрузчика модуля не стал стандартом ES6.
, затеняя его в eval, работал для меня, скрывая его от статического анализатора ...
if (typeof __CLI__ !== 'undefined') {
eval("require('fs');")
}
if (condition) { import('something') .then(({ somethingExported }) => { console.log(somethingExported); }); }
– ivn 23 March 2018 в 15:56npm run build
я все еще получаю ошибку:SyntaxError: ... 'import' and 'export' may only appear at the top level
– ste 30 May 2018 в 07:27