Не переносит меня на компонент (реагирует-роутер, ссылка)

Переменная extern - это объявление (благодаря sbi для коррекции) переменной, которая определена в другой единицы перевода. Это означает, что хранилище для переменной выделено в другом файле.

Скажем, у вас есть два файла .c test1.c и test2.c. Если вы определяете глобальную переменную int test1_var; в test1.c и хотите получить доступ к этой переменной в test2.c, вы должны использовать extern int test1_var; в test2.c.

Полный образец:

$ cat test1.c 
int test1_var = 5;
$ cat test2.c
#include <stdio.h>

extern int test1_var;

int main(void) {
    printf("test1_var = %d\n", test1_var);
    return 0;
}
$ gcc test1.c test2.c -o test
$ ./test
test1_var = 5
0
задан Tholle 20 March 2019 в 10:49
поделиться

2 ответа

Вы находитесь в метке-переключателе, поэтому отображается первое совпадение. Первое совпадение для <Route path="/meals" component={ListRecipes} />, поэтому оно будет отображено. Попытайтесь добавить параметр точно к этому маршруту route doc

0
ответ дан Pavel Kratochvil 20 March 2019 в 10:49
поделиться

Вам необходимо будет использовать withRouter HOC с ItemRecipe, поскольку он не получает реквизиты маршрутизатора

const ItemRecipe = ({ recipe }) => {
  const { label, image } = recipe.recipe;
  return (
    <li>
      <p> {label} </p>
      <img src={image} alt="food" />


      <Link to={`/meals/${label}`} >
        <p>More information</p>
      </Link >
    </li>
  );
}

export default withRouter(ItemRecipe);

Также вам следует кодировать параметры URL-адреса перед использованием с помощью ссылки со ссылкой enocdeURIComponent и декодировать это в DetailsRecipe с использованием decodeURIComponent

<Link to={`/meals/${encodeURIComponenent(label)}`} >
0
ответ дан Shubham Khatri 20 March 2019 в 10:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: