How can I pass props down in Angular 2+ like React?

前端 未结 2 1826
别跟我提以往
别跟我提以往 2021-02-13 02:48

In react I can arbitrarily pass props down like so:

function SomeComponent(props) {
  const {takeOutProp, ...restOfProps} = props;
  return 
相关标签:
2条回答
  • 2021-02-13 03:15

    As opposed to React components, Angular components aren't recompiled on input changes and use @Input property decorators to enable change detection. All properties that are expected to be passed should be explicitly defined as component inputs.

    There are no better options than this one for custom select component. It's possible to read static attributes from current component element and set them on nested component element, but this won't set up bindings.

    As for React recipe for deep props in wrapped components:

    const Baz = props => <p>{props.baz}</p>;
    const Bar = props => <Baz {...props} />;
    const Foo = props => <Bar {...props} />;
    

    This is usually handled by Angular DI and a hierarchy of injectors. A provider can be defined on respective injector in order to make data and behaviour available to nested components.

    0 讨论(0)
  • 2021-02-13 03:32

    Actually it is not the answer on your question but perhaps it helps you. You can add one custom directive with all params you need.

    import { Directive, ElementRef } from '@angular/core';
    
    @Directive({
      selector: '[defaultConfig]'
    })
    export class DefaultDropdownConfigDirective {
        constructor(el: ElementRef) {
           el.nativeElement.style.backgroundColor = 'yellow';
           // your default config
    
        }
    }
    
    <my-dropdown defaultConfig></my-dropdown>
    

    For more details you can read this

    0 讨论(0)
提交回复
热议问题