首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redux中不使用StateLess组件的连接

Redux中不使用StateLess组件的连接
EN

Stack Overflow用户
提问于 2016-02-17 06:21:46
回答 5查看 30.3K关注 0票数 15

我正在从其他组件中分配一个操作,而且商店正在使用svgArr属性进行更新,但是尽管下面的无状态组件connect'ed到存储区,但是当存储更改为svgArr时,它不会被更新。

它应该如何作为一个无状态组件来运行呢?还是我做错什么了?

代码语言:javascript
复制
const Layer = (props) => {
  console.log(props.svgArr);
  return (<div style = {
    {
      width: props.canvasWidth,
      height: props.canvasWidth
    }
  }
  className = {
    styles.imgLayer
  } > hi < /div>);
};

connect((state) => {
  return {
    svgArr: state.svgArr
  };
}, Layer);

export default Layer;
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-02-18 08:19:18

以下是您的代码的重写

代码语言:javascript
复制
import {connect} from 'react-redux';

// this should probably not be a free variable
const styles = {imgLayer: '???'};

const _Layer = ({canvasWidth}) => (
  <div className={styles.imgLayer} 
       style={{
         width: canvasWidth,
         height: canvasWidth
       }}
       children="hi" />
);

const Layer = connect(
  state => ({
    svgArr: state.svgArr
  })
)(_Layer);

export default Layer;
票数 16
EN

Stack Overflow用户

发布于 2016-02-17 09:05:22

您似乎是在导出层,而不是层组件的连接版本。

如果您查看redux文档:https://github.com/reactjs/react-redux/blob/master/docs/api.md#inject-dispatch-and-todos

应该有点像

代码语言:javascript
复制
function mapStateToProps(state) {
  return {svgArr: state.svgArr}
}
export default connect(mapSTateToProps)(Layer)

票数 22
EN

Stack Overflow用户

发布于 2019-03-16 18:39:42

如果要连接无状态函数,应该将其包装到另一个const中:

代码语言:javascript
复制
const Layer = (props) => {
  return (
   <div > 
   </div>
 );
};

export const ConnectedLayer = connect(mapStateToProps)(Layer);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35449317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档