عبد النور محمد نشر 28 يونيو 2021 أرسل تقرير نشر 28 يونيو 2021 أحاول استخدام Redux مع مشروع next.js starter وقمت بتثبيت next-redux-wrapper على المشروع ولكني لست متأكدًا من مكان ملف root في المشروع. أحاول اتباع البرنامج التعليمي الذي يظهر على next-redux-wrapper ولكن لم ينجح. لا شيء يتغير. 1 اقتباس
0 عبدالله عبدالرحمن11 نشر 28 يونيو 2021 أرسل تقرير نشر 28 يونيو 2021 يستخدم Next.js المكون App لتهيئة الصفحات. يمكنك إبطاله والتحكم في تهيئة الصفحة. على الرغم من أن هذا المثال التوضيحي خاص بـ next.js ، إلا أنه يجب أن يعمل مع nextjs-starter. قم بتثبيت next-redux-wrapper: npm install --save next-redux-wrapper أضف ملف _app.js إلى مسار pages/. : // pages/_app.js import React from "react"; import {createStore} from "redux"; import {Provider} from "react-redux"; import App, {Container} from "next/app"; import withRedux from "next-redux-wrapper"; const reducer = (state = {foo: ''}, action) => { switch (action.type) { case 'FOO': return {...state, foo: action.payload}; default: return state } }; const makeStore = (initialState, options) => { return createStore(reducer, initialState); }; class MyApp extends App { static async getInitialProps({Component, ctx}) { /* * يمكننا عمل * dispatch * من هنا */ ctx.store.dispatch({type: 'FOO', payload: 'foo'}); const pageProps = Component.getInitialProps ? await Component.getInitialProps(ctx) : {}; return {pageProps}; } render() { const {Component, pageProps, store} = this.props; return ( <Container> <Provider store={store}> <Component {...pageProps} /> </Provider> </Container> ); } } export default withRedux(makeStore)(MyApp); وبعد ذلك ، يمكن توصيل مكونات الصفحة الفعلية ببساطة: هذا العرض التوضيحي حول كيفية اتصال index.js بالصفحات. import Link from "next/link"; import React from "react"; import { Container, Row, Col, Button, Jumbotron, ListGroup, ListGroupItem } from "reactstrap"; import Page from "../components/page"; import Layout from "../components/layout"; import { connect } from "react-redux"; class Default extends Page { static getInitialProps({ store, isServer, pathname, query }) { store.dispatch({ type: "FOO", payload: "foo" }); // المكون سيتمكن من قراءة حالة المخزن عند تصييره return { custom: "custom" }; // يمكننا تمرير بعض الخيارات المُخصصة من هنا } render() { return ( <Layout>content...</Layout> ); } } export default connect()(Default); راجع التوثيق الرسمي للحصول على مزيد من المعلومات: next-redux-wrapper اقتباس
السؤال
عبد النور محمد
أحاول استخدام Redux مع مشروع next.js starter وقمت بتثبيت next-redux-wrapper على المشروع ولكني لست متأكدًا من مكان ملف root في المشروع.
أحاول اتباع البرنامج التعليمي الذي يظهر على next-redux-wrapper ولكن لم ينجح. لا شيء يتغير.
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.