אני מתקשה עם TypeScript, במיוחד עם dotnet new react-redux של מיקרוסופט.
אני מנסה לקרוא לפעולה בהפעלה כדי לבדוק אם משתמש מחובר או לא, אבל TypeScript לא אוהב את זה ואני לא מבין את השגיאה.
הנה קוד העיצוב:
import * as React from "react"; import { NavMenu } from "./NavMenu"; import { connect } from "react-redux"; import * as AuthStore from "../store/Auth"; type LayoutProps = typeof AuthStore.actionCreators; class Layout extends React.Component<LayoutProps, {}> { קרא עוד →יש לי רכיב טופס שנוצר באמצעות redux-form.
אני משתמש ב-reduxForm() HOC כדי לחבר את רכיב הטופס לאחסון ה-redux של redux-form.
כחלק מזה אני צריך לספק שם לטופס, אשר פועל כזיהוי תחתיו redux-form שומר את נתוני הטופס.
export const ContactAddEditForm = ReduxForm.reduxForm<FormData, Props>({ form: "contactAddEdit" })(ContactAddEdit);בדוגמה שלמעלה אני משתמש בשם "contactAddEdit".
אני מעוניין להשתמש שוב בטופס הזה במקומות שונים, שכל אח
קרא עוד →כרגע, יש לי צורת מצב כזו עבור תצוגת האמן-פרט שלי
paychecks: { summary: {}, details: {}, };כאשר summary מכיל מערך של פריטים ו-details יכיל את הפרטים עבור כל פריט שנשלף מה-API.
מבנה תיקיות
/paychecks index.js /summary actions.js reducers.js index.js /details actions.js reducers.js index.jsבתצוגות שלי יש לי שני מסכים נפרדים. תצוגת המאסטר מחוברת ל-summary state ותצוגת הפרטים מחוברת ל-d
קרא עוד →כרגע נתקלתי בבעיה עם הקלדה נכונה של הפונקציה dispatch ב-redux-form.
פונקציית onSubmit מ־redux-form מקבלת שני ארגומנטים:
const onSubmit = (values, dispatch) => {...};עם זאת, זה לא אותו dispatch בדיוק כמו זה מ-redux.
אני מתכוון, זה מאבד טיפוסים. אני יכול להקליד את זה איך שאני רוצה ו-TypeScript לא יזרוק שום שגיאות, לדוגמה ..., dispatch: Dispatch<{ foo: 'bar' }>) גם אם אי
קרא עוד →אז... אני צריך לבצע חיבור redux של קומפוננט מתורגם ב-i18n באמצעות TypeScript. הבעיה היא שהטיפוסים משתגעים!
interface Props extends InjectedTranslateProps { page: number; } interface StoreData { count: number; } const BookComponent = ({ page, count }: Props & StoreData) => { ... } const translatedComponent = translate(['books'])(BookComponent ); function mapStateToProps(state: Store): StoreData { return { count: state.count }; } export default connect< קרא עוד →
אני מנסה לשנות את הקוד מ-Javascript React ל-Typescript React.
יש לי פעולה כאן שמבצעת קריאת API ומחזירה פונקציה עם dispatch
הקובץ שלי UserActions.ts נראה כך
export const login = ({username, password}) => async (dispatch קרא עוד →לכן יש לי מפתח ב-state של ה-redux שלי roomId שהוא מוגדר כלא מוגדר רק לפרק זמן קצר. אחרי זה הוא תמיד יהיה מוגדר.
עכשיו הבעיה היא שהמצב שלי נראה כזה:
interface State { roomId?: string; }והבורר שלי
export const getRoomId(state: State) => state.roomId;אבל הבעיה היא שבכל הקוד שלי אני צריך לבדוק אם ה-roomId שהוחזר על ידי הסלקטור מוגדר או לא. קצת מעצבן לעשות את זה בכל המקומות.
הצעות נוספות להימנע
קרא עוד →האפליקציה שלי עבדה טוב עד שעדכנתי את החבילות material ui ו-react ופתאום התחלתי לקבל את השגיאה הבאה
src/App.tsx (156,45): Type '{}' does not satisfy the constraint ComponentType<never>. Type '{}' is not assignable to type StatelessComponent<never>.השורה 156 של הקובץ App.tsx שלי היא כפי שאני מציג למטה:
export default (withRoot(withStyles(styles)<{}>(connect(mapStateToProps)(withWidth()(App))))); קרא עוד →
אני עובד על אפליקציית React תוך שימוש ב-TypeScript ו-Redux. עדכנתי מספר חבילות npm, ביניהן החבילה typescript ועכשיו קובץ tsconfig.json (קובץ הקונפיגורציה של קומפיילר TypeScript) מראה לי את השגיאה הבאה:
לא ניתן למצוא קובץ הגדרת סוג עבור 'redux-logger'
ניסיתי לחפש את הבעיה הזאת כאן ובגוגל, אבל לא הצלחתי למצוא מה אני צריך לכלול בקובץ tsconfig.json. זהו תוכן הקובץ:
{ "compilerOptions": { "outDir": "build/dist", קרא עוד →
אני מנסה להתחיל עם TypeScript בשילוב עם React ו-Redux.
אבל אני נאבק כרגע.
קיבלתי את השגיאה הזו:
..>, callback?: (() => any)...'. סוגי הפרמטרים 'f' ו-'f' אינם תאימים. סוגי הפרמטרים 'props' ו-&
קרא עוד →