คำถามติดแท็ก react-context

5
React Context vs React Redux เมื่อใดที่ฉันควรใช้แต่ละอัน [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ React 16.3.0 ได้รับการเผยแพร่และAPI บริบทไม่ได้เป็นคุณลักษณะทดลองอีกต่อไป แดน Abramov (ผู้สร้างของ Redux) การแสดงความคิดเห็นที่ดีเขียนที่นี่เกี่ยวกับเรื่องนี้ แต่มันก็ 2 ปีเมื่อบริบทก็ยังคงคุณลักษณะทดลอง คำถามของฉันคือในความเห็น / ประสบการณ์ของคุณเมื่อใดที่ฉันควรใช้React Contextผ่านReact Reduxและในทางกลับกัน

3
จะอัปเดต React Context จากภายในองค์ประกอบลูกได้อย่างไร
ฉันมีการตั้งค่าภาษาในบริบทดังต่อไปนี้ class LanguageProvider extends Component { static childContextTypes = { langConfig: PropTypes.object, }; getChildContext() { return { langConfig: 'en' }; } render() { return this.props.children; } } export default LanguageProvider; รหัสแอปพลิเคชันของฉันจะเป็นดังนี้ <LanguageProvider> <App> <MyPage /> </App> </LanguageProvider> หน้าของฉันมีส่วนประกอบสำหรับเปลี่ยนภาษา <MyPage> <LanguageSwitcher/> </MyPage> LanguageSwitcher ในการนี้MyPageจำเป็นต้องอัปเดตบริบทเพื่อเปลี่ยนภาษาเป็น 'jp' ดังต่อไปนี้ class LanguageSwitcher extends Component { …

4
เข้าถึง React Context นอกฟังก์ชัน render
ฉันกำลังพัฒนาแอปใหม่โดยใช้ React Context API ใหม่แทน Redux และก่อนหน้านี้Reduxเมื่อฉันต้องการรับรายชื่อผู้ใช้เช่นฉันเรียกcomponentDidMountสิ่งที่ทำ แต่ตอนนี้ด้วย React Context การกระทำของฉันอยู่ภายใน ผู้บริโภคของฉันซึ่งอยู่ในฟังก์ชันการเรนเดอร์ของฉันซึ่งหมายความว่าทุกครั้งที่เรียกใช้ฟังก์ชันการเรนเดอร์ระบบจะเรียกการดำเนินการของฉันเพื่อรับรายชื่อผู้ใช้ของฉันและนั่นไม่ดีเพราะฉันจะดำเนินการตามคำขอที่ไม่จำเป็นจำนวนมาก ดังนั้นฉันจะเรียกเพียงครั้งเดียวการกระทำของฉันเช่นcomponentDidMountแทนที่จะเรียกในการแสดงผลได้อย่างไร เพื่อเป็นตัวอย่างให้ดูที่รหัสนี้: สมมติว่าฉันกำลังรวมProvidersองค์ประกอบทั้งหมดไว้ในองค์ประกอบเดียวดังนี้: import React from 'react'; import UserProvider from './UserProvider'; import PostProvider from './PostProvider'; export default class Provider extends React.Component { render(){ return( <UserProvider> <PostProvider> {this.props.children} </PostProvider> </UserProvider> ) } } จากนั้นฉันใส่องค์ประกอบผู้ให้บริการนี้ห่อแอปทั้งหมดของฉันดังนี้: import React from 'react'; import …

3
ไม่สามารถอ่านคุณสมบัติ 'ประวัติ' ของไม่ได้กำหนด (useHistory hook ของ React Router 5)
ฉันกำลังใช้เบ็ดประวัติศาสตร์ใหม่ของ React Router ซึ่งออกมาเมื่อไม่กี่สัปดาห์ที่ผ่านมา เวอร์ชั่น React-router ของฉันคือ 5.1.2 React ของฉันอยู่ที่เวอร์ชัน 16.10.1 คุณสามารถค้นหารหัสของฉันที่ด้านล่าง แต่เมื่อฉันนำเข้าการใช้งานใหม่ประวัติจาก react-router ฉันได้รับข้อผิดพลาดนี้: Uncaught TypeError: Cannot read property 'history' of undefined ซึ่งเกิดจากสายนี้ใน React-router function useHistory() { if (process.env.NODE_ENV !== "production") { !(typeof useContext === "function") ? process.env.NODE_ENV !== "production" ? invariant(false, "You must use React >= 16.8 in …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.