Используйте 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)
Заменить
<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>
хорошо, это свойство ReactJS , когда вы отображаете массив, чтобы создать список компонентов (как вы делаете на своих страницах / main / index.js для генерации h2) ваш ключ должен быть уникальным, и я думаю, что вы извлекаете фильм 2 раза (или более), что делает ключ не уникальным (потому что вы используете название фильма в качестве ключа), чтобы избежать проблемы попробуйте вместо этого использовать индекс цикла карты, это лучше.
{this.state.movies.map(( movie , index ) => (
<h2 key={index}>{movie.title}</h2>
))}
Если вы отображаете какой-либо список в реакции, каждый ваш компонент должен иметь уникальный идентификатор в качестве ключа.
На ваших страницах -> main -> index.js
У вас есть это
{this.state.movies.map(movie => {
return <h2 key={movie.toString()}>{movie.title}</h2>;
})}
Здесь вам нужно передать что-то уникальное для ключа вместо movie.toString()
.