Me pregunto si es posible hacer lo siguiente en JSX (este código no funciona, solo un ejemplo de lo que estoy tratando de hacer):
const propKey = 'someProp'; const jsx = <MyComponent [propKey]="some value" />; // evaluates to <MyComponent someProp="some value">Estoy usando babel es2015 etapa-1, por lo que podría difundir un diccionario como este:
const extraProps = {[propKey]: 'some value'}; const jsx = <MyComponent {...extraProps} />pero eso parece demasiado torpe para un solo accesorio. No estoy buscando usar React.createElement; todas mis clases son clases de es6. ¡Gracias!
Puede crear en el JSX un objeto utilizando los nombres de propiedad calculados y difundirlo:
const propKey = 'someProp'; const jsx = <MyComponent { ...{ [propKey]: "some value" } } />;JSX es azúcar sintáctico para llamar a React.createElement . Entonces, una solución es llamar a React.createElement directamente:
const element = React.createElement(MyComponent, {[propKey]: 'some value'});