Да как бы ты ни поступал, вот здесь же ты берешь один пост из массива. То есть здесь у тебя константа post - это один объект, а не массив. Так почему ты дальше пытаешься пробросить как массив? И почему там на конце ты из массива пытаешься получить свойство title, как будто у тебя там не массив должен прийти, а конечный пост? То есть ты настолько запутался тут с типами объектов, просто ппц.
Это все из первого вопроса выползает)) --> Вытаскиваю из url с помощью useRoute порпаметр поста urlname и по нему делаю фильтр среди всех постов. Работает, но явно это гланды через ж... Как в том случае следкет поступить? --- Вот здесь похоже надо было заблуждаться до конца и передавать массив из одного поста....
Ну так а зачем ты тип посту задал массив? Сам виноват. Еще и здесь передаешь post или массив. Пьяный был или сонный? :)
Откройте dev-tools браузера. Все консольные сообщения туда выводятся. И вы можете в коде писать свои console-вызовы, они там будут выводиться.
Случайно выполни задание с чужим решением. Возможно в этом коде получиться разобраться, если консоль будет показывать все выводы, а не только "is not defined"...
Здесь же вылезли ошибки типов: https://github.com/linklib/miniwar/blob/779e373a16fbe04b4c80fdf1d2cd1a1bcf182fc4/src/pages/Posts/Post/index.tsx#L41 и https://github.com/linklib/miniwar/blob/779e373a16fbe04b4c80fdf1d2cd1a1bcf182fc4/src/pages/Posts/Post/View/index.tsx#L9 Работать работает, но ts ошибки есть. Чует мое сердце - связь есть)
stats{max, min} - подобный код вообще невалидный в JS. А по поводу вашего вопроса: давайте еще подробнее разберем синтаксис. Здесь выполняется операция присвоения (с использованием оператора присвоения (или присваивания, кому как больше нравится)). То есть здесь сразу надо разбить на две части: то, что слева от знака = и то, что справа. При этом порядок выполнения тут справа налево, то есть сначала будет вычислен конечный результат справа, и только потом этот результат будет передан в левую часть, то есть в нашем случае присвоен константе half. И здесь надо понимать, что константа здесь не обязана называться именно half. Какое бы мы не дали допустимое имя здесь, она все равно получила бы результат выполнения из правой части. А что у нас справа? А тут у нас просто стрелочная функция. При этом обратите внимание, что в данном случае присваивается не результат этой функции, а именно сама функция. То есть сейчас она только создана, но ее еще не вызывали, параметров в нее никаких не передавали. Вызывают ее позже: Вот здесь уже ее вызывают, а результат ее выполнения уходит в console.log(). И вот здесь важно понять: в вызов функции half уходит параметр-объект stats. То есть в нашу функцию может быть передан любой параметр, или вообще не будет передан (javascript это позволяет). Другой вопрос что мы ожидаем в нашей функции. А в ней мы ожидаем, что придет объект, который содержит в себе свойства max и min. И не важно каково имя переменной этого объекта (это может быть вообще анонимный объект). А вот если придет не объект, а, к примеру, null или undefined, то у нас возникнет ошибка, потому что из них нельзя так свойства извлечь. Подитожим: не важно какое имя у параметра функции, важно что мы в нее передаем.
const half = ({max, min}) => (max + min) / 2.0; // use function argument destructuring Почему этого достаточно и не надо указывать, что данные берутся именно из объекта stats? Мне казалось, что так правильно: const half = (stats{max, min}) => (max + min) / 2.0; // use function argument destructuring
Видимо этот коммент был случайно здесь создан, и относился к этому обсуждению.
именно конструктора, без свойств из прототипа? Конструктор и прототип - это в общих чертах одно и то же, то есть базовая функция, с помощью которой быс создан конечный инстанс. Конечные сущности принято называть инстансами (instance). Если рассматривать теорию текущего урока, то Bird - это конструктор, а duck и canary - конечные инстансы.