Emacs/xterm окрашивают раздражение на Linux

Ошибка в первом теге p говорит вам, что именно происходит. Доступ к свойству «undefined» нарушит работу javascript / реагирует.

Вы, вероятно, не имеете ожидаемых данных в состоянии, чтобы проверить, что я говорю, просто отладьте с помощью console.log (this.state) в вашем рендере:

render() {
  console.log(this.state); // probably has this.state.recipes empty array at first render
  ...

this возможно, это произошло из-за того, что ваше состояние заполняется асинхронным вызовом API. Рендер будет вызван первым до того, как ваш асинхронный запрос от API будет разрешен (что означает, к сожалению, что у вас еще нет данных ..recipes [0] в вашем состоянии)

Я полагаю, у вас есть это в вашем componentDidMount:

componentDidMount() {
  ThirdParty.fetchRecipes().then(data => {
     this.setState({ recipes: data.recipes }); // after setState react calls render again. This time your p tag should work.
  })
  ...

Если у вас более новая версия реагирования, я бы рекомендовал использовать необязательную цепочку , потому что интересующее вас свойство глубоко вложено: Как обрабатывать вызовы функции для данных, которые могут быть неопределенными?

{this.state?.recipes?.[0]?.title}

Еще один эффективный способ, но слишком многословный:

const title =
  this.state &&
  this.state.recipes &&
  this.state.recipes.length &&
  this.state.recipes[0].title
    ? this.state.recipes[0].title
    : "";

render() {return (

{title}

)}

9
задан Todd Gamblin 24 March 2009 в 23:33
поделиться

5 ответов

Цвет brightwhite взгляды хорошо на моем Emacs (который работает под терминалом, не X). На RHEL5 у меня есть мой TERM набор переменной среды к xterm-256color. Если это работает правильно, необходимо смочь запустить эти скрипты и видеть 256 выводов цвета. Под Emacs необходимо видеть довольно гладкую шкалу цветов (никакие очевидно дублирующиеся цвета), когда Вы делаете M-x list-colors-display. В противном случае Вы, вероятно, пропускаете право termcap, запись (попытайтесь установить libtermcap-devel пакет, я думаю).

Если я изменяюсь TERM кому: xterm-color, затем brightwhite выходит немного серый в выводе list-colors-display.

Я не уверен в RHEL4.

11
ответ дан 4 December 2019 в 11:44
поделиться

Что относительно:

(set-foreground-color "brightwhite")

В ответ на комментарий:

В emacs, выполненном M-x list-colors-display который должен показать Вам все цвета, что emacs думает, доступны с Вашим терминалом.

2
ответ дан 4 December 2019 в 11:44
поделиться

Похож Вы только выбираете основной цвет.

(set-foreground-color "white")
(set-foreground-color "black")

Я уверен, что Вы имели в виду set-background-color на последнем.

Я могу подтвердить это при выполнении Emacs как:

$ emacs -nw -bg black -fg white

также.

1
ответ дан 4 December 2019 в 11:44
поделиться

Что, если Вы просто использовали обратное видео для консольной версии, то, что достаточно хорошо?

$ emacs -nw -rv
2
ответ дан 4 December 2019 в 11:44
поделиться

Я сделал некоторые эксперименты, и можно установить консоль, раскрашивает emacs, но Вы ограничены этой палитрой:

black                    blue                                         
cyan                     green                                        
magenta                  red                                          
white                    yellow    

Белый, которого Вы получаете, несколько grayed; полный яркий белый резервируется для полужирного текста. Таким образом, если Вы работаете

M-x facemenu-set-bold

Вы станете полужирными (яркий белый) текст для более поздних вставок.

У меня не было удачи при попытке вызвать поверхность по умолчанию к полужирному. (Я действительно не понимаю, как поверхности работают в emacs.)

1
ответ дан 4 December 2019 в 11:44
поделиться
Другие вопросы по тегам:

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