Как получить функциональный компонент в Rerender при изменении VAR состояния?Javascript

Форум по Javascript
Ответить
Anonymous
 Как получить функциональный компонент в Rerender при изменении VAR состояния?

Сообщение Anonymous »

Я новичок в реагировании и реагировании крючков и очень смущен тем, как запустить повторный рендерин, когда изменяется переменная состояния, и у меня есть эффективное использование, которое отслеживает, что утверждает. < /p>
Можно запустить renderFileTems для повторного заведения? Это называется {renderFileItems (files)} в возвращенном HTML. Хотя я вижу, как используется, я не называю, я не уверен, как запустить повторный рендеринг для этой области, я также в порядке с полным повторным разрешением страницы, но не уверен, как запустить это.
export default function FileUpload() {
const [files, setFiles] = useState();

useEffect(() => {
// what do I do here?
console.log("CHANGE"); // I do see this getting printed when I add a file
}, [files, fileStatus]);

const remove = (filename) => {
if (files == undefined) {
return;
}
var i = 0;
while (i < files.length) {
if (files === filename) {
files.splice(i, 1);
} else {
++i;
}
}
setFiles(files);
};

const renderFileItems = (filelist) =>
filelist == undefined ? (

) : (
filelist.map((f) => (

[*]
{f}




))
);

const fileHandler = (filesArg) => {
// does some logic with filesArg then updates Files state var.
setFiles(/*transformed filesArg*/);
};

return (






Click to upload or drag and drop





  • className="flex flex-col gap-y-1 justify-stretch items-stretch font-semibold text-gray-600"
    id="files-show"
    >
    {renderFileItems(files)}


);
}
< /code>
Если мне нужно разделить renderFileItems в качестве собственного компонента, я запутался, как ее вызовать функцию remove (), которая должна будет изменить состояние файлов, отслеживаемое var в родительстве компонент.
Спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/793 ... ar-changes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»