2016-07-11 31 views
18

なぜcolspan属性がReactに影響しないのですか?反応しないcolspanが機能しない

<table border="1"> 
    <tr> 
    <th colspan="2">people are...</th> 
    </tr> 
    <tr> 
    <td>monkeys</td> 
    <td>donkeys</td> 
    </tr> 
</table> 

とどのような私が手がある:私は次のようにレンダリングする単純なコンポーネントを作成

enter image description here

を、私は何かが足りないのですか?

編集:ここでは

を解決したソリューションです。 Reactは、属性名がcolspanではなく、colSpanと期待しています。この小さな邪悪な事実を発見するのに時間を無駄に浪費した後、これを理解する。リアクトDOM Differencesドキュメントから

+0

私が見るあなたのコードで何も問題がありました。詳細を教えていただけますか?ここはフィドルです。 colspanがうまく動作していることがわかります。 https://jsfiddle.net/m2jknr70/ –

+0

編集した投稿を読む。 Reactは古い学校のhtml構文が嫌いです –

+4

質問文に追加するのではなく、回答を作成してください。あなた自身の質問に答えることは、まさに合法です。 – luboskrnac

答えて

20

すべてのDOMプロパティと(イベントハンドラを含む)の属性は、標準のJavaScriptスタイルと一致するようにcamelCase形式する必要があります。

ブラウザのコンソールをチェックすると、あなたが反応はこれについて警告を出していることがわかります:ケースを変更することに加え

<meta charset="UTF-8"> 
 
<script src="https://npmcdn.com/[email protected]/dist/react.js"></script> 
 
<script src="https://npmcdn.com/[email protected]/dist/react-dom.js"></script> 
 
<script src="https://npmcdn.com/[email protected]/browser-polyfill.min.js"></script> 
 
<script src="https://npmcdn.com/[email protected]/browser.min.js"></script> 
 
<div id="app"></div> 
 
<script type="text/babel"> 
 

 
var App = React.createClass({ 
 
    render() { 
 
    return <table border="1"> 
 
     <tbody> 
 
     <tr> 
 
      <th colspan="2">people are...</th> 
 
     </tr> 
 
     <tr> 
 
      <td>monkeys</td> 
 
      <td>donkeys</td> 
 
     </tr> 
 
     </tbody> 
 
    </table> 
 
    } 
 
}) 
 

 
ReactDOM.render(<App who="World"/>, document.querySelector('#app')) 
 

 
</script>

Warning: Unknown DOM property colspan. Did you mean colSpan? 
    in th (created by App) 
    in tr (created by App) 
    in tbody (created by App) 
    in table (created by App) 
    in App 
7

、私も持っていました値を文字列から数値に変更します。この代わりに:

<td colspan='6' /> 

私はこれをしなければならなかった:

<td colSpan={6} /> 
+1

これは解決策ですが、間違いなく機能します。ありがとうナタン! – Sage

関連する問題