我正在学习reactJs并尝试将属性传递给组件.
代码如下 -
import React from 'react';
import ReactDOM from 'react-dom';
class myComponent extends React.Component {
render() {
if (this.props.signedIn == false) {
return <h1>Hi</h1>;
}
return <h1>Hello!</h1>;
}
}
ReactDOM.render(
<myComponent signedIn={false} />,
document.getElementById('app')
);
Run Code Online (Sandbox Code Playgroud)
这是有效的,但请注意我必须注入false的部分,因为javascript包裹在花括号中.
我怀疑JSX是不是将'false'字符串识别为普通JS中的虚假值?
询问的原因 - 与角度中的ng-show ="false"进行比较,隐藏元素,但正如评论中所讨论的那样,可能是因为ng-show指令手动将'false'评估为假值.
我正在学习React并遇到一个疑问,有两个代码,其中组件中的render方法使用的变量在不同的地方声明,我怀疑是为什么一个工作而另一个不工作.
import React from 'react';
import ReactDOM from 'reactDOM';
const myVar = 'hello';
class myComponent extends React.Component {
render () {
return <h1>{myVar}</h1>;
}
}
ReactDOM(
<myComponent />,
document.getElementById('app')
);
Run Code Online (Sandbox Code Playgroud)
这有效,意味着我能够在render方法中访问全局变量.
但是拿这个不起作用的情况
import React from 'react';
import ReactDOM from 'reactDOM';
class myComponent extends React.Component {
const myVar = 'hello';
render () {
return <h1>{this.myVar}</h1>;
}
}
ReactDOM(
<myComponent />,
document.getElementById('app')
);
Run Code Online (Sandbox Code Playgroud)
我在这里很困惑,有人可以解释这种行为
我正在尝试这样的事情 -
<button class="btn btn-lg btn-block btn-section"
ng-disabled="{{ selectedfruits.length }} < 5" > Show selected fruits</button>
Run Code Online (Sandbox Code Playgroud)
在chrome开发人员工具中,源代码如下所示
<button class="btn btn-lg btn-block btn-section"
ng-disabled="0 < 5">
Show selected fruits</button>
Run Code Online (Sandbox Code Playgroud)
但是按钮没有被禁用,我的控制器看起来像这样 -
.controller('fruitSelectorController',
function ($scope, $rootScope, $timeout) {
$scope.fruits = ['a', 'b', 'c', 'd', 'e'];
$scope.selectedfruits = [];
});
Run Code Online (Sandbox Code Playgroud) 我从文档中得知订阅者已经知道它应该订阅什么,但是现在我怀疑在定义侦听器时,我们会提供确切的事件来触发它
kernel.listener.my_listener:
class: myBundle\EventListener\MyListener
arguments:
- @doctrine.orm.entity_manager
- @twig
tags:
- { name: kernel.event_listener, event: kernel.request, method: myMethod}
Run Code Online (Sandbox Code Playgroud)
因此,侦听器完全知道何时触发,但是在订户的情况下,我们像这样注册
kernel.listener.my_listener:
class: myBundle\EventListener\myListener
arguments: ["@service_container"]
tags:
- { name: kernel.event_subscriber }
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是订户如何知道何时触发或在每个事件上触发?