一道面试题 React

2017-03-01 23:31:51 +08:00
 finalspeed

http://codepen.io/TimJin/pen/wgbPOx

链接里的代码现在不能输出任何可见信息,请修改 js 代码 使屏幕上可以看到 aoeu 。不能修改#app 节点属性(document.getElementById('app').style.display = "block"; 是无效答案)

不能修改 html 和 css 代码

6606 次点击
所在节点    React
14 条回复
blanu
2017-03-02 03:44:34 +08:00
非常想知道答案
raquelken
2017-03-02 04:19:14 +08:00
render 到 body 上不行么?
czheo
2017-03-02 05:30:08 +08:00
是要这个意思吗?
componentDidMount() {
ReactDOM.findDOMNode(this).parentNode.style.display="block"
}
markx
2017-03-02 06:43:54 +08:00
呃要不然直接 document.write('aoeu')?
murmur
2017-03-02 07:47:48 +08:00
直接写一段内联 style disply 是 block!important 不就完了。。没说不准修改节点属性又没说不允许额外 css
murmur
2017-03-02 07:49:03 +08:00
*更正,是创建一个新的 style 节点
rashawn
2017-03-02 08:10:53 +08:00
让我写我会加个 three.js ……

不懂 react
JenJieJu
2017-03-02 08:23:15 +08:00
finalspeed
2017-03-02 10:28:52 +08:00
感谢各位的回答, 我不懂 React, 也不知道答案, 所以上来问问 V 友,
@czheo #3, 测试可以显示"aoeu''.
blanu
2017-03-02 20:03:41 +08:00
@finalspeed 晕了,那个也是相当于修改了 dom 节点属性啊…我还以为你知道答案…
yinfxs
2018-06-16 12:35:27 +08:00
class Application extends React.Component {
render(){
return this.props.children;
}
}

//DO NOT MAKE CHANGES BELOW THIS LINE
ReactDOM.render(<Application><div>aoeu</div></Application>, document.body);
yinfxs
2018-06-16 13:36:00 +08:00
看漏了,请忽略我的回复
yinfxs
2018-06-16 14:00:33 +08:00
class Application extends React.Component {
componentDidMount() {
const _ = ReactDOM.findDOMNode(this);
_.parentNode.parentNode.append(_)
}
render(){
return this.props.children;
}
}

//DO NOT MAKE CHANGES BELOW THIS LINE
ReactDOM.render(<Application><div>aoeu</div></Application>, document.getElementById('app'));
yinfxs
2018-06-16 14:01:19 +08:00
这样不知道是不是标准答案,但是满足你说的要求:

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/344199

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX