Я только что видел этот отличный способ переключения, передавая объект как call? или apply? к другому объекту. Есть ли у этого шаблона имя в обычном Javascript? Я бы хотел прочитать об этом, чтобы лучше понять, как это работает в React:
this.state = {
nav: content1,
}
render() {
return (
<section>
{{
content1: <content1 />,
content2: <content2 />,
content3: <content3 />,
}[this.state.nav]}
</section>
);
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это просто объект внутри JSX.
{{
content1: <content1 />,
content2: <content2 />,
content3: <content3 />,
}[this.state.nav]}
Такой же как
{favSnack: “Apple”}[‘favSnack’]
Обязательно используйте прямые кавычки, а не так называемые умные кавычки.
Здесь JSX рассматривается как объекты JSON, заключенные в фигурные скобки {}.
Ключи и значения разделяются двоеточием. Вы можете получить доступ к значениям объекта, используя запись с точкой (.):
myObj = { "name":"John", "age":30, "car":null };
x = myObj.name;
You can also access the object values by using bracket ([]) notation:
myObj = { "name":"John", "age":30, "car":null };
x = myObj["name"];
Спасибо за дальнейшие объяснения. (лицо => ладонь) Теперь я это вижу. JSX иногда портит мне голову !!
Это нормальный Javascript является. Он просто получает доступ к свойству сразу, без необходимости сначала создавать объект, а ЗАТЕМ получить к нему доступ. Таким образом, вместо
let obj = {...}; let val=obj[key];вы можете сразу использовать ключ на необработанном объекте:let val = {...}[key];