1. JavaScript / Говнокод #25835

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    export default class CheckboxFilter extends React.PureComponent {
    
      private handleChange = (field: string) => (value: unknown) => {
        const { onChange } = this.props;
        onChange({params: { [field]: value }})
      };
    
      private onChangeValue(value: string, onChange: (value: string | null) => void, checked: boolean) {
        onChange(checked ? value : null);
      }
    
      private onChange = (e: any) => {
        const {value, type} = this.props;
        if(value) {
          this.onChangeValue.bind(null, value, this.handleChange(type))(e);
        } else {
          this.handleChange(type)(e);
        }
      }
    
      public render() {
        const {checked, children} = this.props;
    
        return (
            <Checkbox
              onChange={this.onChange}
              name='check'
              checked={checked}
            >
              {children}
            </Checkbox>
        )
      }
    };

    Код на react / typescript.
    Особое внимание методу onChange

    Запостил: gooseim, 12 Сентября 2019

    Комментарии (7) RSS

    Добавить комментарий