VSCode autocomplete extension for React Native? - react-native

I'm using VSCode with my React Native project and want to get the same autocomplete extension used in this video for the 5s clip at 1:08:12, where it shows you what properties there are of a given import etc. I installed TabNine, but it doesn't make any suggestions when I type the name of an import, or anything else.

You can use react-native with TypeScript and you will get really powerful autocompletion support, I believe you can do the same in JavaScript projects if you installed #types/react-native like that
npm i -D #types/react-native

Related

How to show suggestion of my custom component properties installed from npm in vscode?

I just tried to create my own custom component for React Native, i just tried it directly inside vscode editor and it's works.
but when i install it from npm, my properties not showing up
how to make it works like 1st pick above?
here's my source code on github

react native how to know if a repo I am importing is a native module

my question might be a little bit silly or ambiguous since I am fairly new to react native.
I'm trying to use the following repository for my react-native project https://github.com/smekalka/react-native-universal-pedometer. I have noticed that the repo is implemented in .java with platform folder unlike the regular .js or .ts files I used to see. Is this repository considered native module as react native doc describe?
Or in general how I can tell the whatever lib I am using is a native module.
The project is previously tested are under the support of expo-cli. I experienced the error null is not n object while using this repo. If so, I am probably going to eject the expo-cli and rewrite my code so I can use and even create own native-module for full control, some core implementations that written in other languages or expo-cli does not support.
Yes, the android and ios directories in the repository contain the 'native' code used to implement the platform-specific hooks that the Javascript will be able to pick up. Expo is not able to use these native modules or native code so your assumption is correct; you will need to eject your app in order to use this module.
If your app is below version 0.60 of React Native, after installing the module you will need to run react-native link react-native-universal-pedometer to link the native code to the Javascript runtime. If you're above 0.60, it will link automatically when installed.

how to make autocomplete in webstorm as in vsCode for react native?

how to make autocomplete css properties in webstorm as in vsCode for react native?
in vscode
in webStorm
Please follow https://youtrack.jetbrains.com/issue/WEB-35144 for updates.
Installing react-native typings (#types/react-native) should make things better: hit Alt+Enter on "react-native" in import {...} from 'react-native', choose Install Typescript definitions for better type information. See more
More Packages
Styled Components & Styled JSX
Kodehouse
I used plug-in "Tab-Nine" for VS code and Atom . It is very useful for complete code with many language.
Webstorm also, but I haven't experienced it yet. Hope you like it It here

When to use react-native link?

I understand that react-native link (see post) is an automatic way to install native dependencies. The post above explain how to use the link command but lacking the detail of when to use it. Should it be used after adding a component, every code change or after introducing new module to the app?
Why we use react-native-link??
In this post, I will explain why we use react native link command and when we need to use this command or not?
First, we will understand what is native module??
Native Modules
Native modules are usually distributed as npm packages, apart from the typical javascript files and resources they will contain an Android and ios library project. 
React Native provides an impressive amount of native modules that give you direct access to core platform APIs on both Android and IOS.
For example react-native-maps, react-native-firebase, react-native-socketio etc.
These modules or packages contained both platform (Android and Ios) code.
Now coming on to the react native link
Those libraries which are use native code, in that case you'll have to add these files to your app. For linking those library with react native code need to run react-native-link
Here are the few steps to link your libraries that contain native code
Automatic linking
Step 1
Install a library with native dependencies:
$ npm install --save
Step 2
Link your native dependencies:
$ react-native link
Done! All libraries with native dependencies should be successfully linked to your iOS/Android project.
Where we don't use react-native-link??
Those components which are only written in javascript they are not using any native code (Android and Ios). There is no need to run react-native-link.
For example rn-modal-picker, react-native-check-box etc.
You should check out this other answer: The use of react-native-link command?
You only need to run react-native link NAME_OF_PACKAGE when you install a new package that has a native codebase, or without arguments if you want to do it for multiple of them.

How and what does npm link do in this example?

I'm installing react-native-elements and in the installation guide there is this command:
npm i react-native-vector-icons --save && react-native link react-native-vector-icons
I am curious what this part of the command does and why it is necessary: react-native link react-native-vector-icons
As you might know, React Native allows you to interface with the native APIs of the OS via JavaScript. In order to establish this interface, some configuration is required in the native side (linking libraries, adding search paths and assets...), and since this process is relatively repetitive and can be automated, the RN folks made the link command in order to set up modules with native code more easily. In the case of React Native Vector Icons, it will add the font files and other configuration to your project, for both Android and iOS.