【发布时间】:2016-09-08 20:59:54
【问题描述】:
我为一个多次呈现的组件设置了一个onClick 事件。当这个 onClick 被触发时,由 JS 变量确定的按钮内的文本会发生变化。但是,当我单击一个组件的按钮时,相同类型的所有其他组件的文本都会发生变化。代码如下:
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;
这是一张有助于进一步说明问题的图片。
单击按钮应该只影响文本和该按钮内的任何其他内容,而不影响所有其他组件。有什么建议吗?
【问题讨论】:
标签: javascript reactjs redux