Как я могу решить & ldquo; Предупреждение. Обнаружены два ребенка с одним и тем же ключом & rdquo; на React.js

Используйте subprocess.check_output (новый в python 2.7). Он отключит stdout и вызовет исключение, если команда завершится с ошибкой. (Он фактически возвращает содержимое stdout, поэтому вы можете использовать это позже в своей программе, если хотите.) Пример:

import subprocess
try:
    subprocess.check_output(['espeak', text])
except subprocess.CalledProcessError:
    # Do something

Вы также можете подавить stderr с помощью:

    subprocess.check_output(["espeak", text], stderr=subprocess.STDOUT)

Для более ранних, чем 2.7, используйте

import os
import subprocess
with open(os.devnull, 'w')  as FNULL:
    try:
        subprocess._check_call(['espeak', text], stdout=FNULL)
    except subprocess.CalledProcessError:
        # Do something

. Здесь вы можете подавить stderr с помощью

        subprocess._check_call(['espeak', text], stdout=FNULL, stderr=FNULL)

-2
задан Rodrigo Dias 23 February 2019 в 16:54
поделиться

3 ответа

Заменить

<h2 key={movie.toString()}>{movie.title}</h2>

на

<h2 key={movie.id}>{movie.title}</h2>

Объяснение:

React ожидает уникальный ключ для каждой строки в виде списка составная часть. Он использует этот ключ, чтобы определить, что изменилось с момента последнего рендеринга. В противном случае это может быть неоднозначным, как список изменился.

movie.toString() не был уникальным. Он был оценен в "[object Object]" для каждой строки.


Глядя на API, который вы вызываете, вам, возможно, придется сделать что-то более похожее на это:

<h2 key={movie.event.id}>{movie.event.title}</h2>
0
ответ дан Leftium 23 February 2019 в 16:54
поделиться

хорошо, это свойство ReactJS , когда вы отображаете массив, чтобы создать список компонентов (как вы делаете на своих страницах / main / index.js для генерации h2) ваш ключ должен быть уникальным, и я думаю, что вы извлекаете фильм 2 раза (или более), что делает ключ не уникальным (потому что вы используете название фильма в качестве ключа), чтобы избежать проблемы попробуйте вместо этого использовать индекс цикла карты, это лучше.

{this.state.movies.map(( movie , index )  => (
          <h2 key={index}>{movie.title}</h2>
))}
0
ответ дан Djellal Mohamed Aniss 23 February 2019 в 16:54
поделиться

Если вы отображаете какой-либо список в реакции, каждый ваш компонент должен иметь уникальный идентификатор в качестве ключа.

На ваших страницах -> main -> index.js

У вас есть это

{this.state.movies.map(movie => {
      return <h2 key={movie.toString()}>{movie.title}</h2>;
    })}

Здесь вам нужно передать что-то уникальное для ключа вместо movie.toString().

Читайте о ключах здесь

0
ответ дан Utsav Patel 23 February 2019 в 16:54
поделиться
Другие вопросы по тегам:

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