function2
и function3
объявления не должны быть вложены в function1
, потому что они не зависят от его области действия.
function2
ничего не возвращает.
function1
, function2
и function3
действуют как функциональные компоненты и должны использоваться как таковые; они должны иметь имена падежей и иметь единственный параметр props
:
function Funtion2({ text }) {
return <div>function 2: {text}</div>
}
const Function3 = ({ text }) => <div>function 3 {text}</div>
const Function1 = ({ par1, par2 }) => {
return (
<div>
<Function2 text={"some text"}/>
<Function3 text={"some text"}/>
</div>
)
}
Скорее всего, вы не можете легко сделать то, что вы пытаетесь. Существует window.location.replace, который переходит на новый URL и удаляет текущую страницу из истории, но это для полных переходов по страницам и почти наверняка нарушит способ фальсификации истории в jQuery.
Можно изменить, где вы находитесь в стеке истории, используя window.history.go (), который принимает целочисленное смещение в истории и перемещается к соответствующей записи. Он вообще не изменяет стек, он просто ставит вас на новое место. Есть также функции back () и forward (), которые просто вызывают с -1 и 1 соответственно. Это, вероятно, то, что вы ищете, хотя это не изменит стек, просто переместит вас в него.
В идеале, вы должны найти плагин для jQuery, который не ' поддерживать историю так, как это делает jQuery.history, но вместо этого предлагает абстракцию onhashchange, и ваша библиотека просто реагирует на изменения хеша. Таким образом, браузер отвечает за стек истории, и вы не столкнетесь с множеством сумасшедших проблем, с которыми сталкиваются библиотеки истории ajaxian.
История браузера обычно доступна очень ограниченным образом через javascript (чтобы предотвратить отслеживание / доступ сайтов к этой информации). Короткий ответ - насколько я знаю, то, что вы пытаетесь сделать, недоступно для вас через jquery.