ไม่นานมานี้ทางทีมพัฒนา React-navigation ได้ทำการอัพเดต Node package ขอตัวเองเป็นเวอร์ชั่น 4.x ครับ
มีความยืดหยุ่นมากขึ้น แต่ก็มีการเปลี่ยนแปลงโครงสร้างของ Package เหมือนกัน ทำให้เราอาจจะต้องมา recode กันอีกรอบ
พอดีโค้ชพลเจอมาส่วนหนึ่ง ขอเอามาแชร์ไว้ในนี้
แยก Navigator ไปไว้ใน package ของตัวเอง
ยกตัวอย่างเช่น createStackNavigator
ที่ปกติเราสามารถนำมาใช้จาก react-navigation ตรงๆ ได้แบบด้านล่าง
import { createStackNavigator } from 'react-navigation';
ก็มีการแยกไปที่ react-navigation-stack
แทน
import { createStackNavigator } from 'react-navigation-stack';
ดังนั้นถ้าใช้ react-navigation 1.4+ แล้วต้องเปลี่ยนหน่อยนะครับ
วิธีแก้ Error: react-navigation-stack does not exist in haste module map
ซึ่งหลังจากการติดตั้ง react-navigation-stack
ในโปรเจค React Native ที่ใช้ Expo ทำให้เกิด Error ดังด้านล่าง
Error: react-navigation-stack does not exist in haste module map
ให้แก้โดยรันคำสั่งด้านล่าง แล้วค่อยเริ่มใช้งาน expo start
ใหม่ครับ (อ้างอิง)
expo r -c
วิธีแก้ Warning: Accessing view manager configs directly off UIManager via UIManager[‘getConstants’] is no longer supported.
แล้วสำหรับใครที่ปรับแล้ว ขึ้น warning ด้านล่างนี้ ใน Expo
Accessing view manager configs directly off UIManager via UIManager['getConstants'] is no longer supported. Use UIManager.getViewManagerConfig('getConstants') instead.
สามารถแก้ไขได้ดังนี้ครับ (อ้างอิง)
// อัพเกด expo กันก่อน
$ npm install -g expo@latest
// ลบ node_modules และ package-lock.json เพื่อความชัวร์
$ rm -rf node_modules package-lock.json
// เช็คดูว่า เรามี `react-native-gesture-handler` อยู่ไหม ถ้ามีก็ลบออก
$ cat package.json | grep react-native-gesture-handler
// ใช้ expo ติดตั้ง เวอร์ชั่นที่เหมาะสม (expo จะเซ็ตค่าไว้อยู่แล้ว
$ expo install react-native-gesture-handler
// เริ่มรันโปรเจคด้วย Expo แบบไม่โหลด cache เก่ามาใช้งาน
$ expo start --clear
สนใจเริ่มต้นเรียนรู้ React + Redux เข้าใจง่าย ดูด้านล่างเลย
เปิดอบรม React Native สำหรับผู้เริ่มต้น
ปูพื้นฐาน React และ React Native เข้าใจง่าย, ใช้ได้จริง, เนื้อหาใช้ในการทำแอพ Enterprise ขององค์กรได้