javascript - 让愚蠢的组件变得更聪明

标签 javascript css reactjs

我喜欢 React,我也喜欢使用

export default props => (
    <div className="SuperStyled">
        {props.textMain}
        <div className="moreDetail">
           {props.textSub}
        </div>
    </div>
)

允许我在运行时快速使用特殊样式的组件。但我发现,如果我做一些更详细的事情,我可以在组件调用中使用小的样式甚至更快地开始构建我的页面。

export default props => (
    <div className={'SuperStyled ' + props.textColor + " " + props.shadowColor}>
        {props.textMain}
        <div className="moreDetail">
           {props.textSub}
        </div>
    </div>
)

那时我注意到,如果我不通过 props.textColor,它默认为 undefined。哪种排序有意义。

在这种风格的组件中是否有检查如果 props 没有传递它会默认为某些东西(例如 ' ')?

最佳答案

你可以做类似的事情

const MyComponent = props => (
     <div className={'SuperStyled ' + props.textColor + " " + props.shadowColor}>
          {props.textMain}
          <div className="moreDetail">
            {props.textSub}
          </div>
      </div>
)

MyComponent.defaultProps = { // you can set default/fallback value here for the props
    textColor: '', 
    shadowColor: ''
}
export default MyComponent;

关于javascript - 让愚蠢的组件变得更聪明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54673037/

相关文章:

javascript - 具有不同元素符号和数字颜色的默认 ol 和 li 样式

javascript - 如何创建按钮来显示/隐藏 Docusaurus 项目中所有细节标签的状态?

javascript - JS 隐藏横幅仅适用于 Firefox

javascript - 如何在 react 路由器中链接到具有不同参数的当前页面?

reactjs - 如何在无状态 React 组件中单击按钮时获取输入值?

javascript - 超出最大调用堆栈大小 Node.JS WebCrawler

javascript - Node.js Mongoskin 集合迭代 > Jade

javascript - 有没有办法避免 axios 中的 linkpreview.net 出现 CORS 错误,就像 Angular 中的 trustAsResourceUrl() 一样?

php - 无法在 PHP-eclipse 中设置项目的 JavaScript 构建路径

css - 垂直响应高度