#reactjs
Вопрос:
Я хочу , чтобы при нажатии кнопки » Да » отправить как запрос, так и закрыть модальный.
моя близкая модальная функция-это реквизит, а мой запрос axios-внутренняя функция .
как я могу вызвать функцию props в ответе axios ?
или как я могу вызвать функцию и функцию реквизита, когда нажата кнопка «да»?
function DeleteRow(props){ let {ErrorHandler} = useContext(ErrorContext); let {DidUpdate} = useContext(AsideContext); let data = `id=${props.status.rowId}`; function DeleteRowReq(){ axios.post('Acounting-API/API/expenses/delete.php' , data) .then(res =gt; { if(res.data == 'id-error') ErrorHandler('An error has occurred , plz Contact support' , 'warning') else if(res.data == 'error') ErrorHandler('An error has occurred , plz Contact support' , 'warning') else if(res.data == 'success'){ ErrorHandler('The desired row was successfully removed' , 'success') DidUpdate(`delete row with id : `); props.closeModal.bind(this , '' , 'delete_table_row_hide'); } }) .catch(e =gt; console.log(e)) } return( lt;div className={`${style.logout_modal_field} ${props.status.className}`} onClick={props.closeModal.bind(this , '' , 'delete_table_row_hide')}gt; lt;div className={style.main_field}gt; lt;div className={style.content} onClick={e =gt; e.stopPropagation()}gt; lt;pgt;Are you sure you want to delete this row ?lt;/pgt; lt;divgt; lt;button onClick={DeleteRowReq}gt;Yeslt;/buttongt; lt;button onClick={props.closeModal.bind(this , '' , 'delete_table_row_hide')}gt;Nolt;/buttongt; lt;/divgt; lt;/divgt; lt;/divgt; lt;/divgt; )
}
Ответ №1:
вы можете просто вызвать close props из оператора finally.
function DeleteRow(props){ let {ErrorHandler} = useContext(ErrorContext); let {DidUpdate} = useContext(AsideContext); let data = `id=${props.status.rowId}`; function DeleteRowReq(){ axios.post('Acounting-API/API/expenses/delete.php' , data) .then(res =gt; { if(res.data == 'id-error') ErrorHandler('An error has occurred , plz Contact support' , 'warning') else if(res.data == 'error') ErrorHandler('An error has occurred , plz Contact support' , 'warning') else if(res.data == 'success'){ ErrorHandler('The desired row was successfully removed' , 'success') DidUpdate(`delete row with id : `); props.closeModal.bind(this , '' , 'delete_table_row_hide'); } }) .catch(e =gt; console.log(e)) .finally(()=gt; props.closeModal.bind(this , '' , 'delete_table_row_hide');) }