'react'
import {
useDispatch
} from 'react-redux'
import s from './style.module.css'
type ButtonProps = {
fn: Function,
children: PropsWithChildren;
}
export function Button({fn, children}: ButtonProps) {
const dispatch = useDispatch()
return (
<>
<button
onClick={() => dispatch(fn.fn())}
>
{children.children}
</button>
<span className={s.counter_btn_span}>×</span>
</>
)
}
https://www.typescriptlang.org/play?ts=5.1.3#code/JYWwDg9gTgLgBAJQKYEMDGMA0cDeAFKCMAZwHVgYALAYUuABsATKJAOwF84AzQkOAchboY-AFChIsXKLhwArsSQARYMTAoYaSqM48IfQagwBaFozkAPMaJgBPMEjgAhOTBgRWBIsTgBeabJcrABccABicqwYwB6YMnBaDMxsoV4k5FS0SSysANzxOqKiSBaS8FyR0R7Oru6sABQ4QdiJTDnsoS5uHmnEAJTS8WgexPCMquqalH7yiipqGlr1ffEsMHJQrHD18bIAPAB8u7JwewBGtR7Hsh7U9MBoANa+OMt+B3DjC1P1QQB0QWWfXY1zgRxOJxwrWSrD+0PaoL2AHoLt1WOCIacFls0PQUMRiAA5FAgJAvYhwiCRGBIKAAfTOMFYdOx7AOADIYKAkMRcsjsRj9kijvEVuwgA
> fn.fn > children.children шо
пока так умею )
PropsWithChildren это дженерик
import React from 'react'; import { useDispatch } from 'react-redux'; import { AnyAction } from 'redux' type ButtonProps = { fn: () => AnyAction; children: React.ReactNode; }; export function Button({ fn, children }: ButtonProps) { const dispatch = useDispatch(); return ( <> <button onClick={() => dispatch(fn())}> {children} </button> {/* <span className={s.counter_btn_span}>×</span> */} {/* The `s` style object is not provided in your current code. You might need to import a CSS/SCSS module. */} </> ); }
накормил чатжпт
type Props = PropsWithChildren<{ ... }>
ну что делать
почему кнопка имеет бизнес логику? она должна быть "тупой", и всю логику в онклике хранить
так так , а у меня в онклике вся логика
в чем прикол?
export type PropsWithChildren<P = unknown> = P & { children?: preact.ComponentChild | undefined; }; === type Props=PropWithChildren<{foo:boolean}> Props { foo:boolean, children?: ComponentChild | undefined } на preact не обращай внимания
это для меня какое то колдунство )
А вам не трудно будет подсказать где инфа по AnyAction, что то я в доке Redux Toolkit не нашел.
Обсуждают сегодня