Просмотр исходного кода

Change csrftoken from state to props

okonomi 9 лет назад
Родитель
Сommit
58106e2227
2 измененных файлов с 3 добавлено и 10 удалено
  1. 1 1
      resource/js/app.js
  2. 2 9
      resource/js/components/BookmarkButton.js

+ 1 - 1
resource/js/app.js

@@ -37,7 +37,7 @@ const componentMappings = {
   //'revision-history': <PageHistory pageId={pageId} />,
   //'page-comment': <PageComment />,
   'seen-user-list': <SeenUserList />,
-  'bookmark-button': <BookmarkButton pageId={pageId} crowi={crowi} />,
+  'bookmark-button': <BookmarkButton pageId={pageId} crowi={crowi} csrfToken={$('#bookmark-button').data('csrftoken')} />, // FIXME: How to pass token
 };
 
 Object.keys(componentMappings).forEach((key) => {

+ 2 - 9
resource/js/components/BookmarkButton.js

@@ -9,19 +9,11 @@ export default class BookmarkButton extends React.Component {
 
     this.state = {
       bookmarked: false,
-      token: null,
     };
 
     this.handleClick = this.handleClick.bind(this);
   }
 
-  componentWillMount() {
-    // FIXME(property?)
-    this.setState({
-      token: $('#bookmark-button').data('csrftoken'),
-    });
-  }
-
   componentDidMount() {
     this.props.crowi.apiGet('/bookmarks.get', {page_id: this.props.pageId})
     .then(res => {
@@ -34,7 +26,7 @@ export default class BookmarkButton extends React.Component {
   handleClick(event) {
     event.preventDefault();
 
-    const token = this.state.token;
+    const token = this.props.csrfToken;
     const pageId = this.props.pageId;
 
     if (!this.state.bookmarked) {
@@ -72,4 +64,5 @@ export default class BookmarkButton extends React.Component {
 BookmarkButton.propTypes = {
   pageId: React.PropTypes.string,
   crowi: React.PropTypes.object.isRequired,
+  csrfToken: React.PropTypes.string.isRequired,
 };