Попробуйте следующее:
SELECT
id,
name,
report_id
FROM
(
SELECT id,
report_id,
name,
CASE WHEN @name != name THEN @rn := 1 ELSE @rn := @rn + 1 END rn,
@name:=name
FROM (SELECT * FROM tbl ORDER BY RAND()) a,
(SELECT @rn:=0, @name := NULL) r
ORDER BY name
) s
WHERE rn <= 10;
Передача данных с помощью navigation.navigate
не вызовет повторную визуализацию, поскольку она передает копию реквизита. Вам нужно будет найти другой способ отправки реквизита, чтобы ваш компонент узнал об изменениях. Вы можете, например, подключить ваш компонент к вашему состоянию редукции (при условии, что вы используете редукс). Если вы не используете redux, вы можете отправить функцию обновления из родительского компонента navigate('Child', { refresh: refreshFunction }
в Child
. Затем вы можете получить доступ к этой функции у дочернего элемента (через что-то вроде this.props.navigation.state.params.refresh();
или const refresh() = this.props.navigation.getParam('regresh')
). до обратного действия. Это приведет к обновлению родительского состояния для обновления.
Я надеюсь, что это поможет вам
Вы правильно передали данные, но при извлечении данных вы ошиблись let details = props.navigation.getParam("details", "n/a");
, просто поставьте this.props
вот так console.log(props.navigation.getParam.changeDetails);
console.log(props.navigation.getParam.details)
console.log просто для отладки, вы можете назначить его любой переменной. получить данные в виде объекта или в форме json
. установить это в конструкторе render () или где вы хотите использовать эти данные
как сказано в документе:
this.props.navigation.navigate('YOUR TARGET NAME', {
itemId: 86,
otherParam: 'anything you want here',
});
здесь - полный пример, удачи
правка: в дочернем компоненте в [112 ] метод, который вы должны проверить, что если реквизиты изменены, установите новые реквизиты в состояние, тогда компонент будет перерисован с новым состоянием:
componentDidUpdate(){
if ('YOUR DATA FROM PARENT' != 'PREVIOUS DATA FROM PARENT SAVED IN STATE'){
this.setState({yourState: 'YOUR DATA FROM PARENT'})
}