Estoy usando esta solución para abrir modales en mi webpart React SPFx, el problema es que tengo que abrir este modal desde un botón en una tabla de datos (datatables.net), ya que OnClick() no existe, solo onclick () Tengo un problema al llamar al modal.
¿Es posible ponerlo a trabajar?
Esta es la muestra de enlace modal https://www.c-sharpcorner.com/article/modal-popup-in-spfx/
En las tablas de datos probé
{ data: null, render: function (data, type, row, meta) { return '<input type="button" class="name" id=n-"' + meta.row + '" value="Edit"/> <input type="button" class="salary" id=s-"' + meta.row + '" value="Delete"/>'; }Después
that = this; $('#example tbody').on('click', '.name', function () { var data = table.row($(this).closest('tr')).data(); that.state.callchildcomponent && <MYModal myprops={that.state} handler={that.handler} /> });Pero se espera que funcione así.
public render(): React.ReactElement<ICertificatesListProps> { return ( <div> ...... <Button onClick={(e) => this.Buttonclick(e)} variant="contained" color="primary" style={{ float: "right" }}>Add +</Button> {this.state.callchildcomponent && <MYModal myprops={this.state} handler={this.handler} />}Manipulador
handler() { this.setState({ callchildcomponent: false }); }Kidnly pide ayuda a la comunidad
Este fragmento:
that.state.callchildcomponent && <MYModal myprops={that.state} handler={that.handler} />solo puede funcionar dentro de la función de renderizado, según tengo entendido. Por lo tanto, debe colocar la función de renderizado, como en su ejemplo de "stock" con el botón estándar. Yo haría eso, y dentro de su controlador de botones, pondría algo como esto en su lugar:
that.setState({ callchildcomponent: true });