Browse Source

1. fixed TagCloud unmount setState

2. fixed PageHeader key warning
3. fixed MiniArea key warning
pull/574/merge
nikogu 8 years ago
parent
commit
5ade223021
  1. 20
      src/components/Charts/MiniArea/index.js
  2. 23
      src/components/Charts/TagCloud/index.js
  3. 2
      src/layouts/PageHeaderLayout.js

20
src/components/Charts/MiniArea/index.js

@ -56,8 +56,24 @@ export default class MiniArea extends React.Component {
data={data}
padding={padding}
>
<Axis name="x" label={false} line={false} tickLine={false} grid={false} {...xAxis} />
<Axis name="y" label={false} line={false} tickLine={false} grid={false} {...yAxis} />
<Axis
key="axis-x"
name="x"
label={false}
line={false}
tickLine={false}
grid={false}
{...xAxis}
/>
<Axis
key="axis-y"
name="y"
label={false}
line={false}
tickLine={false}
grid={false}
{...yAxis}
/>
<Tooltip showTitle={false} crosshairs={false} />
<Geom
type="area"

23
src/components/Charts/TagCloud/index.js

@ -31,6 +31,7 @@ class TagCloud extends Component {
}
componentWillUnmount() {
this.isUnmount = true;
window.removeEventListener('resize', this.resize);
}
@ -87,18 +88,14 @@ class TagCloud extends Component {
const h = height * 4;
const w = this.root.offsetWidth * 4;
const imageMask = new Image();
imageMask.crossOrigin = '';
imageMask.src = imgUrl;
imageMask.onload = () => {
const onload = () => {
const dv = new DataSet.View().source(data);
const range = dv.range('value');
const [min, max] = range;
dv.transform({
type: 'tag-cloud',
fields: ['name', 'value'],
imageMask,
imageMask: this.imageMask,
font: 'Verdana',
size: [w, h], // 宽高设置最好根据 imageMask 做调整
padding: 5,
@ -112,12 +109,26 @@ class TagCloud extends Component {
},
});
if (this.isUnmount) {
return;
}
this.setState({
dv,
w,
h,
});
};
if (!this.imageMask) {
this.imageMask = new Image();
this.imageMask.crossOrigin = '';
this.imageMask.src = imgUrl;
this.imageMask.onload = onload;
} else {
onload();
}
};
render() {

2
src/layouts/PageHeaderLayout.js

@ -6,7 +6,7 @@ import styles from './PageHeaderLayout.less';
export default ({ children, wrapperClassName, top, ...restProps }) => (
<div style={{ margin: '-24px -24px 0' }} className={wrapperClassName}>
{top}
<PageHeader {...restProps} linkElement={Link} />
<PageHeader key="pageheader" {...restProps} linkElement={Link} />
{children ? <div className={styles.content}>{children}</div> : null}
</div>
);

Loading…
Cancel
Save