我已经折磨自己好几个小时了,却找不到答案。React 数据到底位于哪个对象/键下?我发现一个对象ReactRoot似乎存储了有关组件的所有信息,但我不知道它位于窗口(我猜?)对象中的位置。
它必须位于窗口对象下方的某个位置,对吧?
如果您拍摄内存快照并从列表中选择构造函数,chrome 将在(chrome 中的 $0ReactRoot )下创建对其的引用。$0
编辑
ReactRoot 的声明方式是否有可能导致其他对象无法访问它?这在js中怎么可能呢?React 没有得到浏览器的任何特殊待遇,不是吗?
我似乎无法使用名称字符串呈现组件.我希望能够动态生成具有可呈现的现有相应组件的组件名称字符串.
该array常量会通过JSON数据来填充,这就是为什么我需要使用string值识别组件.
这是我正在尝试做的事情:
import Module1 from './module1';
import Module2 from './module2';
import Module3 from './module3';
const array = ['Module1', 'Module2', 'Module3'];
{array.map((Module, index) =>
<Module />
)}
Run Code Online (Sandbox Code Playgroud)
React不是引用现有组件并呈现它,而是呈现全部小写的自定义元素标记.
注意:这些组件['Module1', 'Module2', 'Module3']创建为extends Component
schedulePassiveEffects作为一个非英语母语人士,我对React 源代码中的“被动效果”一词感到困惑cancelPassiveEffects。这里的“被动”到底是什么意思?
我有一个es6 react组件,我希望状态的初始值取决于传递的prop的初始值,但其值始终为false:
AttachStateToProps组件
<AttachStateToProps VALUE=false />
Run Code Online (Sandbox Code Playgroud)
AttachStateToProps组件:
class AttachStateToProps extends React.Component {
state = {
stateValue: this.props.VALUE,
}
render() {
console.log('Value of Prop - ', this.props.VALUE)
console.log('Value of State - ', this.state.stateValue)
return null
}
}
Run Code Online (Sandbox Code Playgroud)
每次更改prop VALUE的值时,我得到:
`Value of Prop - false` // this changes whenever I change prop value in
<AttachStateToProps />
Run Code Online (Sandbox Code Playgroud)
和
`Value of State - false` // this does not change accordingly.
Run Code Online (Sandbox Code Playgroud)
我认为这可能与state / setState异步且较旧有关,getinitialState但我不知道为什么。
根据新的React 16 发布文档,它说
“React 16 会将渲染过程中发生的所有错误打印到开发中的控制台,即使应用程序意外吞掉了它们。”
我有一个父组件和一个子组件。我在 then 的承诺块中触发了一个错误。但它会调用 Promise 的 catch 方法,父级的 componentDidCatch 不会被调用。我不确定这是否是预期的行为。
这是jsfiddle https://jsfiddle.net/john1jan/Luktwrdm/14/
class Parent extends React.Component {
constructor(props){
super(props);
this.state={hasError:false}
}
render() {
if(this.state.hasError){
return <div>Something went wrong</div>
}
return (
<div>
<h1>I am parent</h1>
<Child></Child>
</div>
);
}
componentDidCatch(error,errorInfo){
this.setState({
hasError:true
})
}
}
class Child extends React.Component {
render() {
return (
<div>
<h1>I am child</h1>
</div>
);
}
componentDidMount(){
fetch("https://jsonplaceholder.typicode.com/posts").then((response) => {
throw new Error("I am …Run Code Online (Sandbox Code Playgroud) react-fiber ×5
reactjs ×5
arrays ×1
components ×1
ecmascript-6 ×1
es6-class ×1
javascript ×1
state ×1
string ×1