标签: react-jsx

React.js 变量

当我使用以小写字母开头的变量时,页面不显示任何内容。如果我将变量名称更改为以大写字母 (HelloWorld) 开头,则页面将显示内容。

<script type="text/jsx">
 var helloWorld = React.createClass({
    render : function () {
                return (
                    <div>
                    <h1>Hello World</h1>
                    </div>
                    );
    }
 });

 React.render(<helloWorld/> , document.body);
</script>
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么会这样?

javascript reactjs react-jsx

2
推荐指数
1
解决办法
1078
查看次数

如何在命令行中转换JSX文件

我是React的新手,我试着关注pretranspile JSX的主题:

https://facebook.github.io/react/docs/tooling-integration.html

我的代码[app.js]非常简单:

var React = require("react");
var ReactDOM = require("react-dom");
var Todo = React.createClass({
    render: function() {
        return <button>Add</button>;
    }
});
ReactDOM.render(<Todo />, docuemtn.getElementById("div1"))
Run Code Online (Sandbox Code Playgroud)

我先安装:

npm install -g babel-cli
npm install react react-dom
Run Code Online (Sandbox Code Playgroud)

然后尝试使用:

babel --watch ./app.js --out-dir ./
Run Code Online (Sandbox Code Playgroud)

但它总是说:

SyntaxError: ./app.jsx: Unexpected token (10:9)
   8 | var Todo = React.createClass({
   9 |  render: function() {
> 10 |          return <div>Hello {this.props.name}</div>;
     |          ^
  11 |  }
  12 | });
  13 |
Run Code Online (Sandbox Code Playgroud)

我想知道如何解决这个问题?

reactjs react-jsx babeljs

2
推荐指数
1
解决办法
2234
查看次数

在 gulp 中使用 browserify-css

我正在使用 gulp + browserify 来使用 ES2015 并响应 jsx。我想添加一些像这样的外部反应组件:DataPicker

这是第一次在我的项目中添加外部反应组件,所以我不知道 css 也需要导入。

但我没有使用 webpack,我只是使用 gulp。这些是我的 gulp 节点模块:

  • 乙烯基源流
  • 乙烯基缓冲液
  • 浏览器化
  • 巴别化
  • babel-preset-es2015
  • babel-preset-react

这是我的 gulpfile:

gulp.task('build', function() {
    return browserify('./app.js')
    .transform(babelify, { presets: ["es2015", "react"] }
    .bundle()
    .pipe(source('app.js'))
    .pipe(buffer())
    .pipe(gulp.dest('./dist'));
});
Run Code Online (Sandbox Code Playgroud)

我发现在 javascript 中使用 import/require css 需要“browserify-css”,所以我添加了“npm install browserify-css”。然后我将转换方法添加到我的 gulpfile 中,如下所示:

gulp.task('build', function() {
    return browserify('./app.js')
    .transform(babelify, { presets: ["es2015", "react"] }
    .transform(require('browserify-css'))
    .bundle()
    .pipe(source('app.js'))
    .pipe(buffer())
    .pipe(gulp.dest('./dist'));
});
Run Code Online (Sandbox Code Playgroud)

但它刚刚抛出了这样的错误:

events.js:154, 抛出 er; // 未处理的 'error' 事件,SyntaxError: Unexpected token

我在我的 …

browserify gulp react-jsx babeljs

2
推荐指数
1
解决办法
2721
查看次数

如何断言React.Component实例的返回类型?

在打字稿中,我有一个React Component,Cell,

class Cell extends Component<void, void> {
...
}
Run Code Online (Sandbox Code Playgroud)

当我使用它时,即

<Cell />
Run Code Online (Sandbox Code Playgroud)

我得到的返回类型是JSX.Element.

相反,我试图断言返回值是一个实例Cell,而不是JSX.Element,我怎么能这样做呢?

它失败了,因为它说

Type `Element` is not assignable to type `Cell`
Run Code Online (Sandbox Code Playgroud)

jsx typescript react-jsx

2
推荐指数
1
解决办法
595
查看次数

我的组件中的这个 prop 语法是什么?

我有以下代码:

const cEditor = (onUpdate, props) => (<SelectEditor onUpdate=(onUpdate) {...props} />);
Run Code Online (Sandbox Code Playgroud)

正在做{...props}什么?似乎它正在将 props 传递给组件。这个语法是什么意思?

ecmascript-6 reactjs react-jsx

2
推荐指数
1
解决办法
3916
查看次数

将多个.jsx文件编译为一个.js文件

有没有办法一步将多个reactjs .jsx文件编译成一个.js文件?

就像是:

jsxtool compile ./src/*.jsx --out app.js

谢谢.

javascript reactjs react-jsx

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

JSX没有输出

我在Ubuntu 14.04上

我安装了节点

sudo apt-get install node
Run Code Online (Sandbox Code Playgroud)

我安装了npm

sudo apt-get install npm
Run Code Online (Sandbox Code Playgroud)

我安装了react-tools

sudo npm install -g react-tools
Run Code Online (Sandbox Code Playgroud)

当我尝试:

jsx -h
Run Code Online (Sandbox Code Playgroud)

我没有输出.什么想法可能是错的?可能是pebcak,但我会很感激.

reactjs react-jsx

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

React中数组作为状态的问题

jsx转换工具在以下行引发错误说'意外令牌:[':

this.setState({array[index]: value});
Run Code Online (Sandbox Code Playgroud)

显然我只想设置新的状态,但是这个错误迫使我写了一些解决方法.为什么变压器不接受上述线路?

javascript reactjs react-jsx

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

客户端非ES6浏览器上的JSX传播属性

ReactJS JSX具有一种可以轻松地向组件添加许多属性的方法:

var props = {};
props.foo = x;
props.bar = y;
var component = <Component {...props} />;
Run Code Online (Sandbox Code Playgroud)

这些称为传播属性。

https://facebook.github.io/react/docs/jsx-spread.html#spread-attributes

...表示法称为ES6中使用的Spread运算符。如果您要使用Babel等在服务器端渲染所有内容,那么这很容易使用,但是如果您想在客户端的浏览器中创建和渲染组件,则如何在不使用浏览器的浏览器中使用扩展属性支持ES6 ...Spread运算符?

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_operator#Browser_compatibility

javascript reactjs react-jsx

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

ReactJS中的渲染如何与"返回"的HTML标记一起工作

在React代码中,我return (<form> .. </form>);在HTML里面看到......这是有效的Javascript吗?它以某种方式转换为字符串或什么?

我正在学习Javascript,当然也有一些差距.这让我感到很困惑!

var AddTodoComponent = React.createClass({
  render: function () {
    return (
      <form>
        <input type="text" disabled={AppStore.isSaving()}/>
      </form>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-jsx

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