首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将此JSX转换为Hyperstack?

如何将此JSX转换为Hyperstack?
EN

Stack Overflow用户
提问于 2019-05-07 01:50:18
回答 1查看 62关注 0票数 1

如何将此JSX转换为Hyperstack组件?

代码语言:javascript
复制
const Stopwatch = () => (
  <ReactStopwatch
    seconds={0}
    minutes={0}
    hours={0}
    limit="00:00:10"
    onChange={({ hours, minutes, seconds }) => {
      // do something
    }}
    onCallback={() => console.log('Finish')}
    render={({ formatted, hours, minutes, seconds }) => {
      return (
        <div>
          <p>
            Formatted: { formatted }
          </p>
          <p>
            Hours: { hours }
          </p>
          <p>
            Minutes: { minutes }
          </p>
          <p>
            Seconds: { seconds }
          </p>
        </div>
      );
    }}
   />
);

这种语法render={({ formatted, hours, minutes, seconds })对我来说是新的。这些是道具吗?

我正在尝试使用这个NPM模块:

https://www.npmjs.com/package/react-stopwatch

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-07 02:30:05

render属性呈现一个功能组件。函数组件是一个函数,这样参数就是属性,返回值就是要呈现的组件。

因此,我们需要将渲染道具转换为蛋白石。

代码语言:javascript
复制
    DIV do
      P { "Formatted: #{native_props.formatted}" }
      P { "Hours: #{native_props.hours}" }
      P { "Minutes: #{native_props.minutes}" }
      P { "Seconds: #{native_props.seconds}" }
    end.to_n

这里有一个问题。第一个是props作为javascript对象被传递。我们需要的是ruby,所以我们把它包装在Native中。

第二步是将秒表类暴露给Hyperstack。

在app/javascript/packs下,编辑hyperstack.js以包含react-stopwatch。

代码语言:javascript
复制
import ReactStopwatch from 'react-stopwatch';
global.ReactStopwatch = ReactStopwatch;

现在您可以在代码中使用Stopwatch了。

把这些放在一起,你就会得到:

代码语言:javascript
复制
class Stopwatch < HyperComponent
  render do
    ReactStopwatch(seconds: 0, minutes: 0, hours: 0, limit: "00:00:10").on("<render>") do |props|
      DIV do
        P { "Formatted: #{props.formatted}" }
        P { "Hours: #{props.hours}" }
        P { "Minutes: #{props.minutes}" }
        P { "Seconds: #{props.seconds}" }
      end.to_n
    end
  end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56010084

复制
相关文章

相似问题

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