То есть здесь у тебя константа post - это один объект, а не массив. Так почему ты дальше пытаешься пробросить как массив? И почему там на конце ты из массива пытаешься получить свойство title, как будто у тебя там не массив должен прийти, а конечный пост? То есть ты настолько запутался тут с типами объектов, просто ппц.
Это все из первого вопроса выползает))
--> Вытаскиваю из url с помощью useRoute порпаметр поста urlname и по нему делаю фильтр среди всех постов. Работает, но явно это гланды через ж...
Как в том случае следкет поступить?
---
Вот здесь похоже надо было заблуждаться до конца и передавать массив из одного поста....
Сам виноват.
Пьяный был или сонный? :)
Откройте dev-tools браузера. Все консольные сообщения туда выводятся. И вы можете в коде писать свои console-вызовы, они там будут выводиться.
Случайно выполни задание с чужим решением. Возможно в этом коде получиться разобраться, если консоль будет показывать все выводы, а не только "is not defined"...
Здесь же вылезли ошибки типов: https://github.com/linklib/miniwar/blob/779e373a16fbe04b4c80fdf1d2cd1a1bcf182fc4/src/pages/Posts/Post/index.tsx#L41
и
Работать работает, но 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 - конечные инстансы.