• Как исправить ошибку Error: [Reanimated] Failed to create a worklet.?

    @Totobi Автор вопроса
    Не знаю пригодится кому-то, но Я решил проблему.
    1. cd android && ./gradlew clean
    2. metro.config.js
           const { getDefaultConfig, mergeConfig } = require("@react-native/metro-config");
      const { wrapWithReanimatedMetroConfig } = require("react-native-reanimated/metro-config");
      
      const defaultConfig = getDefaultConfig(__dirname);
      const { assetExts, sourceExts } = defaultConfig.resolver;
      
      /**
       * Metro configuration
       * https://reactnative.dev/docs/metro
       *
       * @type {import('metro-config').MetroConfig}
       */
      const config = {
        resetCache: false,
        transformer: {
          babelTransformerPath: require.resolve(
            "react-native-svg-transformer/react-native"
          )
        },
        resolver: {
          assetExts: assetExts.filter((ext) => ext !== "svg"),
          sourceExts: [...sourceExts, "svg"]
        }
      };
      
      module.exports = wrapWithReanimatedMetroConfig(mergeConfig(defaultConfig, config));

    3. module.exports = {
        presets: ['module:@react-native/babel-preset'],
        plugins: ['react-native-reanimated/plugin'],
      };

    4. npm start -- --reset-cache

    После успешного старта не забудьте в metro.config.js установить
    resetCache: false,
    .
    Ответ написан
    Комментировать
  • Как правильно вывести последнее сообщение в блок слева который будет на картинке?

    @Totobi Автор вопроса
    ThunderCat , Даниил, pantsarny
    вот запрос к которому Я пришел и он достает то что мне надо. Но Я столкнулся с проблемой, в PDO нельзя везде установить одно название для бинда значения и Я сделал вот так (код после текста), но мне кажется так неправильно делать. Можете что-то посоветовать?
    public function dialogueList($id)
        {
            try
            {
               
                $query = "
                SELECT
                    m.message,
                    m.date,
                    u.login AS interlocutor_name,
                    i.img AS interlocutor_img
                FROM messages m
                JOIN (
                    SELECT MAX(date) AS max_date, dialog_id
                    FROM messages
                    WHERE from_user_id = :id1 OR to_user_id = :id2
                    GROUP BY dialog_id
                ) t ON m.dialog_id = t.dialog_id AND m.date = t.max_date
                JOIN users u ON
                    (CASE
                        WHEN m.from_user_id = :id3 THEN m.to_user_id = u.id
                        WHEN m.to_user_id = :id4 THEN m.from_user_id = u.id
                    END)
                LEFT JOIN 
                    image i ON u.id = i.obj_id AND i.obj_type = 'user' 
                WHERE m.from_user_id = :id5 OR m.to_user_id = :id6
                ";
                $stmt = $this->db->prepare($query);
                $stmt->bindValue(":id1", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id2", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id3", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id4", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id5", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id6", $id, PDO::PARAM_INT);
                $stmt->execute();
                $data = $stmt->fetchAll();
    
                return $data;
            }
            catch(PDOException $e)
            {
                echo $e;
            }
        }
    Ответ написан