我是ReactJS的新手.当我点击它时,我试图同时更改文本和按钮的颜色.此代码有效:
class ToggleHelp extends React.Component {
constructor(props) {
super(props);
this.state = {isHelpOn: true};
// This binding is necessary to make `this` work in the callback
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState(prevState => ({
isHelpOn: !prevState.isHelpOn
}));
}
render() {
return (
<button onClick={this.handleClick}>
{this.state.isHelpOn ? 'HELP ON' : 'HELP OFF'}
</button>
);
}
}
ReactDOM.render(
<ToggleHelp />,
document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用如下所示的内联样式时,代码停止工作.
<button style={background:yellow} onClick={this.handleClick}>
{this.state.isHelpOn ? 'HELP ON' : 'HELP OFF'}
</button>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几次,以各种方式做到这一点.我希望它能成为当下的内联风格.是否可以直接从React应用内联样式?如果是,那么想法是评估状态并通过条件语句在另一种颜色上设置一种颜色.
我是Clojure的新手,我有一个关于嵌套doseq循环的问题.
我想迭代一个序列并得到一个子序列,然后得到一些键来在所有序列元素上应用一个函数.
给定的序列具有或多或少的结构,但有数百本书籍,书架和许多库:
([:state/libraries {6 #:library {:name "MUNICIPAL LIBRARY OF X" :id 6
:shelves {3 #:shelf {:name "GREEN SHELF" :id 3 :books
{45 #:book {:id 45 :name "NECRONOMICON" :pages {...},
{89 #:book {:id 89 :name "HOLY BIBLE" :pages {...}}}}}}}}])
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
(defn my-function [] (let [conn (d/connect (-> my-system :config :datomic-uri))]
(doseq [library-seq (read-string (slurp "given-sequence.edn"))]
(doseq [shelves-seq (val library-seq)]
(library/create-shelf conn {:id (:shelf/id (val shelves-seq))
:name (:shelf/name (val shelves-seq))})
(doseq [books-seq (:shelf/books (val shelves-seq))]
(library/create-book conn (:shelf/id (val shelves-seq)) {:id …Run Code Online (Sandbox Code Playgroud)