#javascript #node.js #reactjs #typescript #build
#javascript #node.js #reactjs #машинопись #сборка
Вопрос:
Ну, я просто пытаюсь создать простое приложение react с функциональностью walletconnect. но я получаю кучу ошибок, не могли бы вы, ребята, оказать некоторую поддержку и помочь мне устранить эти ошибки.
трассировка.
ERROR in [at-loader] ./src/components/App.tsx:1:8
TS1259: Module '"C:/Users/AHMED/Downloads/Webpack-React-Setup-master/Webpack-React-Setup-master/node_modules/@types/react/index"' can only be default-imported using the 'esModuleInterop' flag
ERROR in [at-loader] ./src/components/App.tsx:10:10
TS2339: Property 'state' does not exist on type 'App'.
ERROR in [at-loader] ./src/components/App.tsx:45:12
TS2339: Property 'setState' does not exist on type 'App'.
ERROR in [at-loader] ./src/components/App.tsx:46:24
TS2339: Property 'state' does not exist on type 'App'.
ERROR in [at-loader] ./src/components/App.tsx:47:18
TS2339: Property 'state' does not exist on type 'App'.
ERROR in [at-loader] ./src/components/index.tsx:10:5
TS2605: JSX element type 'App' is not a constructor function for JSX elements.
Type 'App' is missing the following properties from type 'ElementClass': context, setState, forceUpdate, props, and 2 more.
i 「wdm」: Failed to compile.
index.tsx
import * as React from 'react'
import * as ReactDOM from 'react-dom';
import App from './App';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
reportWebVitals();
App.tsx
import React from 'react';
import WalletConnect from "@walletconnect/client";
import QRCodeModal from "@walletconnect/qrcode-modal";
class App extends React.Component<any, any> {
constructor(props:any) {
super(props)
this.state = {
address: ''
}
var connector = new WalletConnect({
bridge: "https://bridge.walletconnect.org", // Required
qrcodeModal: QRCodeModal,
});
}
walletConnectFunc = async () => {
var connector = new WalletConnect({
bridge: "https://bridge.walletconnect.org", // Required
qrcodeModal: QRCodeModal,
});
if (connector.connected) {
alert("already connected")
return
}
connector.createSession();
connector.on("connect", async (error, payload) => {
console.log("connect")
if (error) {
throw error;
}
// Get provided accounts and chainId
const { accounts, chainId } = payload.params[0];
console.log("connect account", accounts)
console.log("chainid account", chainId)
const obj = {
"address": accounts[0],
}
this.setState({ address: obj.address })
console.log(this.state.address)
alert(this.state.address)
})
}
render() {
return (
<div className="App">
<body>
<div>
<button className="btn btn-primary my-4" type="button" onClick={() => this.walletConnectFunc()}>WalletConnect</button>
</div>
</body>
</div>
);
}
}
export default App;
У меня есть приложение в другом проекте с именем App.js . И я просто хочу использовать тот же код, но в файле App.tsx с синтаксисом типа script. У меня проблема с тем, что я совершаю кучу ошибок. Вы, ребята, можете это исправить. Я ничего не знаю о машинописи.
Просто для ссылки (App.js )
import React, { Component } from 'react'
import './App.css';
import WalletConnect from "@walletconnect/client";
import QRCodeModal from "@walletconnect/qrcode-modal";
class App extends Component {
constructor(props) {
super(props)
this.state = {
address: ''
}
this.connector = new WalletConnect({
bridge: "https://bridge.walletconnect.org", // Required
qrcodeModal: QRCodeModal,
});
}
walletConnectFunc = async () => {
if (this.connector.connected) {
alert("already connected")
return
}
this.connector.createSession();
this.connector.on("connect", async (error, payload) => {
console.log("connect")
if (error) {
throw error;
}
// Get provided accounts and chainId
const { accounts, chainId } = payload.params[0];
console.log("connect account", accounts)
console.log("chainid account", chainId)
const obj = {
"address": accounts[0],
}
this.setState({ address: obj.address })
console.log(this.state.address)
alert(this.state.address)
})
}
render() {
return (
<div className="App">
<body>
<div>
<button class="btn btn-primary my-4" type="button" onClick={() => this.walletConnectFunc()}>WalletConnect</button>
</div>
</body>
</div>
);
}
}
export default App;
если требуется больше кода, сообщите мне об этом в разделе комментариев. Я дополню свой вопрос этой информацией. большое вам спасибо.
Комментарии:
1. Похоже, вы используете Typescript, и это ошибки типа — у вас установлены типизации для React?
npm i @types/react
2. @jnotelddim теперь готово. но трассировка все та же
3. еще пара вопросов: 1) как вы создали проект? 2) как вы запускаете приложение?
4. Кроме того, это как бы в стороне от сути, но если вы просто делаете это как упражнение для изучения Typescript — я бы рекомендовал вам начать с учебника по typescript.
5. ну, я скачал эту [ссылку] github.com/krofax/Webpack-React-Setup проект react с уже настроенной конфигурацией webpack и пытается преобразовать мой старый App.js файл в файл App.tsx, чтобы я мог использовать его в этом проекте.