From 5a9679fa40ebbbde3425b4cf4f073e0d6c262e50 Mon Sep 17 00:00:00 2001 From: Paul Kaplan <pkaplan@media.mit.edu> Date: Mon, 26 Feb 2018 15:27:04 -0500 Subject: [PATCH] Don't use bind in mapStateToProps --- src/containers/load-button.jsx | 13 ++++++------- src/containers/save-button.jsx | 14 ++++++-------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/containers/load-button.jsx b/src/containers/load-button.jsx index 4d7ca30b0..ad6ba9d4e 100644 --- a/src/containers/load-button.jsx +++ b/src/containers/load-button.jsx @@ -14,12 +14,9 @@ class LoadButton extends React.Component { 'handleClick' ]); } - shouldComponentUpdate () { - return false; - } handleChange (e) { const reader = new FileReader(); - reader.onload = () => this.props.loadProject(reader.result); + reader.onload = () => this.props.vm.fromJSON(reader.result); reader.readAsText(e.target.files[0]); } handleClick () { @@ -30,7 +27,7 @@ class LoadButton extends React.Component { } render () { const { - loadProject, // eslint-disable-line no-unused-vars + vm, // eslint-disable-line no-unused-vars ...props } = this.props; return ( @@ -45,11 +42,13 @@ class LoadButton extends React.Component { } LoadButton.propTypes = { - loadProject: PropTypes.func.isRequired + vm: PropTypes.shape({ + fromJSON: PropTypes.func + }) }; const mapStateToProps = state => ({ - loadProject: state.vm.fromJSON.bind(state.vm) + vm: state.vm }); export default connect( diff --git a/src/containers/save-button.jsx b/src/containers/save-button.jsx index 5516ba2c7..8e130fbf5 100644 --- a/src/containers/save-button.jsx +++ b/src/containers/save-button.jsx @@ -14,11 +14,8 @@ class SaveButton extends React.Component { 'handleClick' ]); } - shouldComponentUpdate () { - return false; - } handleClick () { - const json = this.props.saveProjectSb3(); + const json = this.props.vm.saveProjectSb3(); // Download project data into a file - create link element, // simulate click on it, and then remove it. @@ -39,7 +36,7 @@ class SaveButton extends React.Component { } render () { const { - saveProjectSb3, // eslint-disable-line no-unused-vars + vm, // eslint-disable-line no-unused-vars ...props } = this.props; return ( @@ -60,11 +57,12 @@ class SaveButton extends React.Component { } SaveButton.propTypes = { - saveProjectSb3: PropTypes.func.isRequired -}; + vm: PropTypes.shape({ + saveProjectSb3: PropTypes.func + })}; const mapStateToProps = state => ({ - saveProjectSb3: state.vm.saveProjectSb3.bind(state.vm) + vm: state.vm }); export default connect( -- GitLab