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