Окно .__ Tauri__ недоступенJavascript

Форум по Javascript
Ответить
Anonymous
 Окно .__ Tauri__ недоступен

Сообщение Anonymous »

tauri v2 с next.js v15 < /p>
Я пытался использовать базу данных SQLite в моем приложении Tauri, я следовал официальной документации, и база данных работает правильно. Как будто я могу выполнять операции DB обычно, но теперь я хотел сделать экземпляр Singleton для базы данных. Поэтому я сделал крючок для базы данных, но проблема в том, что она не работает, как предполагается, посмотрите на мой компонент крюка. p>
npm run tauri dev
< /code>
Вывод консоли: < /p>

tauri обнаружен: false < /p>
< / BlockQuote>
и: < /p>

window.__TAURI__ неопределенно

import { useState, useEffect } from 'react';
import Database from '@tauri-apps/plugin-sql';

type DatabaseInstance = Awaited;

export const useDatabase = () => {
const [db, setDb] = useState(null);

useEffect(() => {
// Check here
console.log('Tauri detected:', !!window.__TAURI__);
console.log(window.__TAURI__);

if (typeof window !== 'undefined' && window.__TAURI__) {
Database.load('sqlite:test.db')
.then((database) => {
console.log('Database loaded successfully:', database);
setDb(database);
})
.catch((error) => {
console.error('Failed to load database:', error);
});
}
}, []);

return db;
};

Поскольку __tauri __ вставлен во время выполнения, мне пришлось сделать для него файл типа. ">import { Database } from '@tauri-apps/plugin-sql';

declare global {
interface Window {
__TAURI__: {
sql: {
load: (connectionString: string) => Promise;
};
};
}
}
< /code>
package.json
"@tauri-apps/api": "^2.2.0",
"@tauri-apps/cli": "^2.2.7",
"@tauri-apps/plugin-sql": "^2.2.0",
"next": "15.1.6",
"react": "^19.0.0",
"react-color": "^2.19.3",
"react-dom": "^19.0.0"


Подробнее здесь: https://stackoverflow.com/questions/794 ... -available
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»