Quantcast
Channel: Active questions tagged react-native+typescript - Stack Overflow
Viewing all articles
Browse latest Browse all 6287

Problems with converting the notepad example of proton-native from js to tsx

$
0
0

I try to convert the Notepad example from the proton-native repository into Typescript. I ran into some issues I could not fix.

Code:TSConfig:

{"compilerOptions": {"strict": true,"target": "es6","module": "ES2015"}}

package.json:

{"name": "notepad","version": "1.0.0","type": "module","description": "a notepad app built using proton-native","main": "index.tsx","scripts": {"start": "babel-node index.tsx"},"dependencies": {"@types/jest": "^26.0.22","@types/node": "^14.14.37","@types/react": "^17.0.3","@types/react-dom": "^17.0.3","proton-native": "^2.0.0","typescript": "^4.2.4"},"devDependencies": {"@babel/cli": "^7.4.4","@babel/core": "^7.4.4","@babel/node": "^7.2.2","@babel/plugin-proposal-class-properties": "^7.4.4","@babel/preset-env": "^7.4.4","@babel/preset-react": "^7.0.0","@babel/preset-stage-0": "^7.0.0"},"author": "","license": "ISC"}

index.tsx

import React, { Component } from 'react';import fs from 'fs';import { App, AppRegistry, Window, TextInput, View } from 'proton-native';class Notepad extends Component {  state = { text: '' };  shouldComponentUpdate(nextProps, nextState) {    if (typeof nextState.text === 'string') return false;    // nextState is set from input    else return true; // nextState is set from file  }  render() {    return (<App><Window><View style={{ flex: 1 }}><TextInput              onChangeText={text => this.setState({ text })}              value={this.state.text}              style={{ flex: 1 }}              multiline            /></View></Window></App>    );  }}AppRegistry.registerComponent('notepad', <Notepad />);

I did not change anything in the other files, except of changing index.js to index.tsx. Related stackoverflow post. I could not figure out how to change the index.js (now index.tsx code) into the ES2015 format. (as suggested in 2)

Error:

babel-node index.tsxinternal/process/esm_loader.js:74internalBinding('errors').triggerUncaughtException(^TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".tsx" for C:\xxx\Notepad\index.tsxat Loader.defaultGetFormat [as _getFormat] (internal/modules/esm/get_format.js:71:15)at Loader.getFormat (internal/modules/esm/loader.js:102:42)at Loader.getModuleJob (internal/modules/esm/loader.js:231:31)at processTicksAndRejections (internal/process/task_queues.js:93:5)at async Loader.import (internal/modules/esm/loader.js:165:17)at async Object.loadESM (internal/process/esm_loader.js:68:5) {code: 'ERR_UNKNOWN_FILE_EXTENSION'}npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! notepad@1.0.0 start: babel-node index.tsxnpm ERR! Exit status 1npm ERR!npm ERR! Failed at the notepad@1.0.0 start script.npm ERR! This is probably not a problem with npm. There is likely additional logging output above.npm ERR! A complete log of this run can be found in:npm ERR! C:\xxx\2021-04-14T08_50_04_846Z-debug.log

Viewing all articles
Browse latest Browse all 6287

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>