2017-06-27 2 views
0

contenteditable属性を使用してコンテンツを編集可能にしたいと考えています。しかし、それを私のコンポーネントに追加すると、どこにも見つかりません。contenteditable属性をhtmlに渡すにはどうすればいいですか?

class CompName extends React.Component { 
    render() { 

    return (
     <div className="CompName" > 
     <div contenteditable={true}>Somecontent</div> 
     </div> 
    ); 
    } 
} 

文字列としてtrueを試してみます。ここに根本的な何かが欠けていますか?私はかなり反応しています。

私はreact-rails gemを使用しています。

答えて

1

JSXはHTMLよりもJavaScriptに近いので、DOMではなくHTMLの属性名の命名規則camelCase プロパティを使用し反応します。 例えば、classはJSXにclassNameなり、tabindextabIndexなります。あなたはcontentEditable={true}を使用する必要が

class CompName extends React.Component { 
    render() { 

    return (
     <div className="comp-name" > 
     <div contentEditable={true}>Somecontent</div> 
     </div> 
    ); 
    } 
} 

はとcontenteditable HTML要素を試していないが、まだ反応するが、私は、あなたがそれらを使用する方法に応じて、あなたが任意の更なる更新せずにいくつかの問題が発生します想像できますあなたのコンポーネントのロジック。

1

あなたはcontenteditableとしてcontentEditableとして渡す必要があります。 これはhtmlではなく、JSXです。属性を渡しな​​がらJS規約に従うべきです。 reactjs docsから

https://facebook.github.io/react/docs/dom-elements.html

+0

https://stackoverflow.com/questions/22677931/react-js-onchange-event-for-contenteditable – Etherealm

+0

これは機能しました。 ..反応はすべての可能なhtml属性を知っていますか?したがって、それはそれらを許可する? – Aurimas

+0

@Aurimasはい。サポートされている属性のリストについては、[こちらを読む](https://facebook.github.io/react/docs/dom-elements.html#all-supported-html-attributes)を参照してください。 – trixn

関連する問題