複数回レンダリングされるコンポーネントに対してonClick
イベントが設定されています。このonClickがトリガされると、JS変数によって決定されるボタン内のテキストが変更されます。しかし、あるコンポーネントのボタンをクリックすると、この同じタイプの他のすべてのコンポーネントのテキストが変更されます。ここでは、コードは次のとおりです。クリックイベントが、同じタイプのすべてのReactコンポーネントを正しく変更しない
FormEntity.js:
import React from 'react';
let hasFile = false;
let uploadBtnText = 'Simulate file upload';
const FormEntity = (props) => {
const handleClick =() => {
if(hasFile) {
props.formInstanceRemoved(props.instanceId);
hasFile = false;
uploadBtnText = 'Simulate file upload';
} else {
props.formInstanceUploaded(props.instanceId, props.blueprintId);
hasFile = true;
uploadBtnText = 'Remove file';
}
};
return (
<div>
<button type="button" onClick={handleClick}> {uploadBtnText} </button>
</div>
);
};
export default FormEntity;
ここでさらなる問題を示して助けるべき画像です。
ボタンをクリックするだけで、あまりにもテキストや他のどんなそのボタン内にある、ない他のすべてのコンポーネントに影響を与える必要があります。何かアドバイス?