小编Dmi*_*dov的帖子

类型'typeof __React'上不存在属性'render'

编译脚本时

/// <reference path="./typings/react/react.d.ts" />
import React = __React;

var content = <div>Hello, world!</div>;

React.render(content, document.getElementById('output'));
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

$ tsc --jsx react app.tsx app.tsx(6,7): error TS2339: Property 'render' does not exist on type 'typeof __React'.

有没有办法解决它?谢谢

typescript reactjs react-jsx

7
推荐指数
1
解决办法
4199
查看次数

CSS3 + Javascript - 将-ms-transition:opacity 1s easy-in-out; 仅在IE 10中工作?

我今天一直在玩一些CSS3 + JavaScript.

下面你有我的代码,(试图制作世界上最小的图像淡入画廊,不知道我是否成功).

我不太确定如何设置CSS.请参阅以下评论问题:

-ms-transition:opacity 1s ease-in-out; // Will this allone work in IE 10?       
transition:opacity 1s ease-in-out; // Why do we set this?
Run Code Online (Sandbox Code Playgroud)

也许是世界上最小的JS-Gallery:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>HB - CSS3 + JS Gallery</title>
<meta charset="utf-8">
<style type="text/css">
body{margin:0;text-align:center;font:200px/500px georgia}
#g{background:#000;margin:0 auto;width:960px;height:500px;overflow:hidden}
#g div{
-webkit-transition:opacity 1s ease-in-out;
-moz-transition:opacity 1s ease-in-out;
-o-transition:opacity 1s ease-in-out;
-ms-transition:opacity 1s ease-in-out;      
transition:opacity 1s ease-in-out;
opacity:0;position:absolute;height:500px;width:960px;}
</style>
</head>
<body>
<div id="g">
<div style="background:#090">1</div>
<div style="background:#096">2</div>
<div style="background:#963">3</div>
<div style="background:#CC0">4</div>
</div>
<script> …
Run Code Online (Sandbox Code Playgroud)

javascript css3 transitions

6
推荐指数
2
解决办法
2万
查看次数

如何将子节点与JSX结合起来?

我想从li元素构建一个ul列表,但li元素将来自不同的来源,所以我不能在一个语句中这样做.看来JSX无法处理一组子元素,这给我一个语法错误:

var items = <li>S</li>
  <li>S</li>
  <li>S</li>;
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想做的事情如下:

var items1 = <li>S</li>
  <li>S</li>
  <li>S</li>;
var items2 = <li>S</li>
  <li>S</li>
  <li>S</li>;
var list = <ul>{items1}{items2}</ul>;
Run Code Online (Sandbox Code Playgroud)

还有另一种方法来实现这一目标吗?

javascript reactjs react-jsx

6
推荐指数
1
解决办法
3003
查看次数

使用没有<script type ="text/jsx">标签的JSX?

我正在研究chrome扩展,特别是内容脚本功能,它将我的js注入网站.

由于我基本上只是使用注入的.js文件,我无法使这个声明看起来像jsx工作所必需的.

  <script type="text/jsx">
  /**@jsx React.DOM*/
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以利用JSX?

reactjs react-jsx

6
推荐指数
1
解决办法
5294
查看次数

React JSX"Parse Error:Unexpected identifier"

目前正在尝试学习React JS/JSX并且一直在创建一个简单的登录表单:

/**
* @jsx React.DOM
*/

var loginForm = React.createClass({
    getInitialState: function() {
        return {loggedIn : false};
    },
    login : function(event) {
        alert('logging in');
    },
    logout : function(event) {
        alert('logging out');
    },
    render: function() {
        return (
            <div>
                <form /*action={this.server+'/login.php'}*/>
                    <label htmlFor="username">Username:</label>
                    <input type="text" id="username" name="username" />
                    <label htmlFor="password">Password:</label>
                    <input type="password" id="password" name="password" />
                </form>
            </div>
            <div>
                <button onClick={this.login}> Login </button>
                <button onClick={this.logout}> Logout </button>
            </div>
        )
    }



});

React.renderComponent(
  <loginForm />,
  document.body
);
Run Code Online (Sandbox Code Playgroud)

如果我删除<button>标签它工作正常但否则会抛出错误:

Uncaught Error: …

javascript reactjs react-jsx

6
推荐指数
1
解决办法
6694
查看次数

JSX Converter使用React.createElement("h1",null)而不是React.DOM.h1(null)

JSX Transformer导致错误

当我使用react-tools的转换器转换我的反应文件时

      $ jsx public/dev/jsx public/prod/js --no-cache-dir
Run Code Online (Sandbox Code Playgroud)

或者当我用grunt-react转换时

      $ grunt react
Run Code Online (Sandbox Code Playgroud)

我的生产文件因转换使用React.createElement而中断,错误表明此函数未定义.

      <h1>{this.state.title}</h1>
Run Code Online (Sandbox Code Playgroud)

转换为:

      React.createElement("div", null, 
      React.createElement("h1", null, this.state.title)
Run Code Online (Sandbox Code Playgroud)

代替:

      React.DOM.h1(null, this.state.title)
Run Code Online (Sandbox Code Playgroud)

实时转换器工作正常,因为它使用React.DOM.h1(null, this.state.title).这行代码适用于react,但该React.createElement()函数不起作用且找不到.

如何强制我的自动转换器(JSX或grunt)转换为React.DOM.h1(null)而不是React.createElement(h1, null).为什么转换器使用此功能?

gruntjs reactjs react-jsx

6
推荐指数
1
解决办法
1963
查看次数

参考错误React

我试图ref使用React 使用该属性.我的浏览器出现了一个奇怪的错误,我无法弄清问题是什么.任何人都可以向我解释为什么我会收到此错误:

错误:不变违规:addComponentAsRefTo(...):只有ReactOwner可以有refs.这通常意味着您尝试将ref添加到没有所有者的组件(即,不是在另一个组件的render方法内创建).尝试在一个新的顶级组件中渲染此组件,该组件将保存ref.

当我有这个代码时:

/**
* @jsx React.DOM
*/
(function(){
var react = require('react');


var App = react.createClass({

    render: function() {
        return (
            <h1 ref="myRef">This is a test</h1>
        );
    }

});

react.render(
    <App />,
    document.body
);
}());
Run Code Online (Sandbox Code Playgroud)

reactjs react-jsx

6
推荐指数
1
解决办法
3546
查看次数

JSX编译器输出不是有效的JavaScript

我正在玩React,我遇到了离线JSX编译器的问题.

这是我的JSX代码,名为helloworld.js,放在我项目根目录下名为src的文件夹中:

/** @jsx React.DOM */

var Hello = React.createClass({
    render: function () {
        return <div>
                <h3>Hello, {this.props.name}</h3>
            </div>
    }
});

React.renderComponent(
    <Hello name={"Jane Doe"} />,
    document.getElementById('example')
);
Run Code Online (Sandbox Code Playgroud)

在命令行中,当我导航到项目的根目录并运行时:

jsx /src /build
Run Code Online (Sandbox Code Playgroud)

输出文件helloworld.jsbuild文件夹中生成,但它不包含有效的JavaScript.

以下是内容的外观:

/** @jsx React.DOM */

var Hello = React.createClass({displayName: "Hello",
    render: function () {
        return <div>
                <h3>Hello, {this.props.name}</h3>
            </div>
    }
});

React.renderComponent(
    <Hello name={"Jane Doe"} />,
    document.getElementById('example')
);
Run Code Online (Sandbox Code Playgroud)

如您所见,它仍然包含内联HTML而不是有效的JavaScript.命令行中没有错误迹象.它看起来像这样:

built Module("helloworld")
["helloworld"] 
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会发生这种情况?

javascript reactjs react-jsx

6
推荐指数
1
解决办法
665
查看次数

有关伊斯坦布尔JSX测试的代码覆盖率

我正在尝试检测我的代码以获得一些覆盖和运行,但是有些东西在我的手指上滑落.

我推出istanbul:

node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha -- -u exports -R spec
Run Code Online (Sandbox Code Playgroud)

mocha.opts看起来像这样:

app/assets/javascripts/components/**/*-mocha.jsx
--compilers jsx:mocha/compiler.js
Run Code Online (Sandbox Code Playgroud)

一切似乎运行良好(测试运行,至少),但我得到的唯一报道是用于编译JSX到JavaScript的文件(用于 compiler.js

compiler.js                 100%
jsx-stub-transform.js       65% 
Run Code Online (Sandbox Code Playgroud)

非常有用......

有任何想法吗?

code-coverage istanbul reactjs react-jsx

6
推荐指数
1
解决办法
1579
查看次数

ReactJS:JSX转换后的ascii艺术问题

我试图让我的React应用程序正确地渲染ascii艺术。

执行jsx-transformer后,我的作品失去了格式,并在浏览器中呈现出非常奇怪的效果

我的代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Hello World!</title>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/react.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"></script>
</head>
<body>
  <div id="content"></div>
  <script type="text/jsx">

    var App = React.createClass({
      render: function() {
        return (
          <pre>
            <code>
              +--------+   +-------+    +-------+
              |        |   + ditaa +    |       |
              |  Text  |   +-------+    |diagram|
              |Document|   |!magic!|    |       |
              |        |   |       |    |       |
              +---+----+   +-------+    +-------+
            </code>
          </pre>
        );
      }
    });

    var element = document.getElementById('content');
    React.render(React.createElement(App), element);
  </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

输出:

在此处输入图片说明

如果我删除react并将pre代码块直接添加到html,一切正常。

我在这里做错什么吗?任何帮助表示赞赏...

更新1:我无法编辑ascii艺术。

更新2 …

javascript ascii-art reactjs react-jsx

6
推荐指数
1
解决办法
759
查看次数