TL; DR: Как я могу интегрировать / внедрить код jQuery (см. Ниже) в ReactJS?
Приветствую всех.Любительский пользователь ReactJS и Flask здесь.Я просто ищу решение о том, как интегрировать код jQuery в ReactJS или даже другие альтернативы, учитывая, что реализация в жизненном цикле становится другой в ReactJS.
В настоящее время этот фрагмент (см. Ниже приведенный ниже шаблонный код jQuery) очень хорошо связывается с CRUD-операциями Flask, которые отправляют выбранное изображение из FileReader()
в форме base64 и отвечают соответствующим прогнозом (по модели ML) при нажатии #predict-button
.
<body>
<input id="image-selector" type="file">
<button id="predict-button">Predict</button>
<p style="font-weight:bold">Predictions</p>
<p>foo1: <span id="foo1"></span></p>
<p>foo2: <span id="foo2"></span></p>
<p>foo3: <span id="foo3"></span></p>
<img id="selected-image" src=""/>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
let base64Image;
$("#image-selector").change(function() {
let reader = new FileReader();
reader.onload = function(e) {
let dataURL = reader.result;
$('#selected-image').attr("src",dataURL);
base64Image = dataURL.replace("data:image/jpeg;base64,","");
}
reader.readAsDataURL($("#image-selector")[0].files[0]);
$("#foo1").text("");
$("#foo2").text("");
$("#foo3").text("");
});
$("#predict-button").click(function(event){
let message = {
image: base64Image
}
console.log(message);
$.post("http://127.0.0.1:5000/predict",JSON.stringify(message),function(response){
$("#foo1").text(response.prediction.foo1.toFixed(6));
$("#foo2").text(response.prediction.foo2.toFixed(6));
$("#foo3").text(response.prediction.foo3.toFixed(6));
console.log(response);
});
});
</script>
</body>
NotОтметим, что мне больше не нужен FileReader()
, так как у меня есть эта функция captureShot()
из'act-webcam 'в ReactJS, которая возвращает закодированную в base64 строку текущего изображения веб-камеры.
captureShot = () => {
const screenshot = this.webcam.getScreenshot();
this.setState({ imageData: screenshot });
}
Возникают такие вопросы:
- Может ли это быть реализовано в ReactJS?
- Если так, то как?Будет ли это через
ComponentDidMount()
или внутри render()
? - Если нет, использует ли Express способ выполнения операций CRUD в ReactJS по пути к Flask?
Anyвид помощи будет высоко ценится.Большое спасибо за ваше время и внимание.