Если я правильно понял ваш вопрос, я думаю, вы немного перепутали дело. Пример, который вы показываете, является примером запуска функции родительского компонента из дочернего элемента.
Я попытаюсь немного разобраться с двумя примерами.
1) Триггер от ребенка :
Чтобы вызвать функцию родительского компонента у ребенка, вы можете просто передать функцию как свойство дочернему компоненту и запустить его, когда вам это нужно.
class Parent extends React.Component {
someFunction = (text) => {
console.log('Message from child: ', text);
}
render () {
return(
)
}
}
class Child extends React.Component {
_onPress = () => {
// check if the property is defined and not null
if(this.props.someProperty) {
// run the function that is passed from the parent
this.props.someProperty();
}
}
render() {
return(
)
}
}
2) Триггер из родителя:
Чтобы вызвать функцию дочернего компонента из родителя, вы можете передать свойство, которое изменяется, когда какое-либо действие происходит на родительском компоненте. Это вызовет повторную визуализацию (в большинстве случаев для получения дополнительной информации см. shouldComponentUpdate
) в дочернем компоненте. Вы можете проверить изменения свойств, а затем сделать то, что вам нужно сделать в дочернем компоненте.
class Parent extends React.Component {
state = {
someParameter: 'someInitialValue',
}
someFunction = (text) => {
this.setState({ someParameter: 'someValue' });
}
render () {
return(
)
}
}
class Child extends React.Component {
someFunction = (text) => {
console.log('Message from parent: ', text);
}
componentDidUpdate(prevProps, prevState, snapshot) {
// Check if the suplied props is changed
if(prevProps.someProperty !== this.props.someProperty) {
// run the function with the suplied new property
this.someFunction(this.props.someProperty);
}
}
render() {
return(
{/* ... */}
)
}
}
Возможно, это может вам помочь?
RewriteCond %{QUERY_STRING} an-old-url$
RewriteRule (.*) /a-new-url/? [R=301,L]
Не проверено, однако, добавив это в ваш файл htaccess , вы должны перенести UTM за вас.